Wolf
Roman Grossi
Tobishua
Digital nomad and originality

Некоторое время назад у меня по необъяснимой причине вызывала сложности настройка авторизации на SSH-сервере по ключам вместо паролей, поэтому, решил написать мини-мануал по настройке этого "для себя".

Всё описанное производилось на Ubuntu 15.04 (домашний ПК) и Ubuntu Server 12.04.5 LTS (удалённый сервер).

 

Для генерации ключей необходимо в терминале ввести следующую команду:

user@HomePC:~$ ssh-keygen -t rsa

После её выполнения появится что-то вроде этого:

user@HomePC:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):

В это время процесс генерации ожидает от нас ввода пути до ключей (в скобках указан путь и имя ключа по умолчанию). Рекомендую указать что-нибудь запоминающееся, особенно, если данный ключ планируется переносить между устройствами.

После указания пути к ключам необходимо ввести кодовую фразу или просто нажать Enter, в случае, если кодовая фраза не нужна.

Отлично! Пара ключей готова!

Теперь самое время скопировать ключ на сервер. В Ubuntu по умолчанию присутствует ssh-copy, поэтому всё ограничится вводом только одной команды:

user@HomePC:~$ ssh-copy-id -i ~/.ssh/id_rsa user@example.com

 (Обратите внимание: если вы ввели своё имя ключа, его также необходимо указать в команде выше)

Ну вот и всё! Теперь самое время попробовать авторизоваться с помощью ключа:

user@HomePC:~$ ssh user@example.com

По идее, если всё прошло хорошо, то пароль запрошен не будет (мы не берём во внимание возможный запрос кодовой фразы от ключа).

Также, если на сервере настроена авторизация по ключам, можно отключить авторизацию по паролю и вообще привести конфиг SSH в порядок. Но об этом как-нибудь позже.