В этой статье рассказано как обеспечить доступ к удаленной машине по SSH с аутентификацией не по паролю, а по ключу.
Создаём на "клиенте" пару ключей (публичный/частный), используя утилиту ssh-keygen:
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ns/.ssh/id_rsa):
Created directory '/home/ns/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ns/.ssh/id_rsa.
Your public key has been saved in /home/ns/.ssh/id_rsa.pub.
The key fingerprint is:
18:f7:a3:78:ec:9e:36:b4:95:c0:5a:36:c4:b6:88:8b Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її.
Здесь мы используем опцию -t, чтобы указать на использование RSA для создания ключей. Ввод некоторого (произвольного) выражения в качестве passphrase настоятельно рекомендуется. После выполнения данной операции получаем два файла в поддиректории .ssh домашней директории: id_rsa и id_rsa.pub
Шаг 2. Копируем файл id_rsa.pub в директорию .ssh/ на "сервере" (напомним, так мы договорились называть удалённую машину, доступ по протоколу ssh к которой необходимо осуществлять без пароля), под именем authorized_keys2:
$ scp /home/ns/.ssh/id_rsa.pub ns@vps:/home/ns/.ssh/authorized_keys2
ns@vps's password:
id_rsa.pub 100% 227 0.2KB/s 00:00
Таким образом, мы указали демону sshd (программа-демон, выполняющая роль SSH-сервера) на "сервере", что для шифрования данных при соединении с нашим "клиентом" необходимо использовать указанный публичный ключ и, кроме того, данный ключ создан для протокола версии 2.
Часть настройки, касающаяся публичного ключа, можно считать завершённой. Теперь "сервер" не будет запрашивать пароль при попытке установления соединения по ssh с данной конкретной машины ("клиента") от данного пользователя (конечно же, в других случаях, пароль будет требоваться, как и должно быть).