PuTTY: Безопасный вход на сервер FreeBSD по SSH без пароля

У моего бывшего начальника под руководством несколько серверов на FreeBSD. Каждый раз, ковыряясь с ними, мне приходилось вводить логин и пароль. Делал я это не каждый день, но если получал «тревожный» звонок от него, то я мог зависнуть в консоли надолго, а главное по несколько раз в день. Чтобы каждый раз не вводить цепочку логин-пароль, я решил добавить свой комп в доверенные.
1. Из комплекта PuTTY запускаем файл puttygen.exe.
2. Нажимаем на кнопку «Generate»:
PuTTY: Безопасный вход на сервер FreeBSD по SSH без пароля
3. Далее нужно водить в окне программы мышкой до тех пор, пока шкала прогресса не дойдет до конца:
PuTTY: Безопасный вход на сервер FreeBSD по SSH без пароля
4. На поле с ключом нажимаем правую кнопку мыши и выбираем «Select All», будет выделен весь текст ключа, после чего копируем его в буфер обмена:
PuTTY: Безопасный вход на сервер FreeBSD по SSH без пароля
5. Будет создана пара ключей шифрования, сохраняем приватный ключ:
PuTTY: Безопасный вход на сервер FreeBSD по SSH без пароля
6. Нажимаем на кнопку «Save private key» (На запрос о сохранении БЕЗ пароля отвечаем утвердительно):
PuTTY: Безопасный вход на сервер FreeBSD по SSH без пароля
7. Сохраняем его на компьютере где-нибудь в папке Documents, например:
«C:\Users\Denis\Documents\PuTTY\SERVER_NAME_privatekey.ppk»
8. На всякий случай можно также сохранить файл публичного ключа (потом его можно будет удалить).
9. Закрываем окно утилиты puttygen.exe
10. Теперь запускаем Putty.exe и логинимся как обычно на сервер FreeBSD под тем пользователем, для которого нужен логин без запроса пароля.

Настройка FreeBSD

11*. Создаём папку .ssh (если её пока нет):

mkdir ~/.ssh

12. Создаем текстовый файл authorized_keys:

touch ~/.ssh/authorized_keys

13. Вставляем в этот файл скопированный на шаге 4 текст и сохраняем файл.

Если вы забыли скопировать текст, то можно его отобразить заново:
PuTTY Key Generator (PuTTYgen)FileLoad private key

 

14. На папку назначаем права только для владельца:

chmod -R 700 .ssh/

и права на файл:

chmod -R 600 .ssh/authorized_keys

15. Включим авторизацию по ключам:

/etc/ssh/sshd_config
PubkeyAuthentication yes

и

AuthorizedKeysFile      .ssh/authorized_keys

Настройки PuTTY

16. Можно создать новую сессию или загрузить старую, чтобы ее изменить:
PuTTY ConfigurationConnectionData
17. Задаем логин:
PuTTY: Безопасный вход на сервер FreeBSD по SSH без пароля

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

 

18. Переходим на следующую настройку:
PuTTY ConfigurationConnectionSSHAuth
19. Нажимаем на кнопку Browse… и выбираем сохраненный в п.5 приватный ключ:
PuTTY: Безопасный вход на сервер FreeBSD по SSH без пароля
20. Переходим в раздел Сессии:
PuTTY ConfigurationSession
21. Вводим данные (адрес сервера, порт и т.п.), название сессии и сохраняем ее:
PuTTY: Безопасный вход на сервер FreeBSD по SSH без пароля
22. Теперь можно залогиниться гораздо быстрее и безопаснее, чем с простым паролем:

Using username "root".
Authenticating with public key "rsa-key-20170928"
Last login: Thu Sep 28 12:22:06 2017 from broadband-xxx-xxx-xxx-xxx.moscow.rt.ru
FreeBSD 10.1-RELEASE (HPDL380E) #1: Sun Feb 22 18:49:33 KRAT 2015
root@xxxxxxxxxxx:~ #
Минус данного метода только в том, что если у хакера окажется ваш приватный ключ из п.7, то он также сможет им воспользоваться…

 

23. Убедившись, что авторизация по ключу работает, можно отключить авторизацию по паролю:

/etc/ssh/sshd_config
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes