SSH — сетевой протокол сеансового уровня, с помощью которого производится удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов).
SSH позволяет безопасно передавать, в незащищённой среде, практически любой другой сетевой протокол.
Очень часто - для управления - нужно заходить на определённый компьютер (server), который при этом выдаёт запрос на пароль. В условиях частых заходов, возникает необходимость постоянно вводить одно и то же, что довольно таки утомительно. А если серверов у нас много и на каждом свой пароль?
Протокол ssh делает возможным заход на уделённую машину без ввода пароля (что очень полезно, например, при резервном копировании, публикации файлов и т.п.).
Но не стоит надеяться, что всё получается когда мы просто убираем пароль, необходима, также, идентификация на основе публичного ключа пользователя (ключа, который будет идентификатором нашего пользователя на удаленном компьютере).
Сначала веб-разработчик должен создать пару ключей - public и private на пользовательском компьютере (client) для конкретного пользователя (user).
Это делается с вомощью утилиты ssh-keygen
$ ssh-keygen -t rsa
Для генерации ключа мы использовали криптографический алгоритм RSA
В домашней директории в директории .ssh появятся два ключа: id_rsa и id_rsa.pub
Дальше нам нужно скопировать наш открытый ключ (id_rsa.pub) на сервер, для чего мы делаем следующую команду
ssh-copy-id username@my-server.com
Или же просто скопировать наш файл с публичным ключом на тот же сервер следующим образом