В целях увеличения уровня безопасности при работе по ssh есть возможность запретить вход по паролю, и тем самым сделать бесполезным их перебор с целью компрометации сервера. При этом отличной альтернативой является аутентификация по ключу. Итак, рассмотрим ситуацию, когда клиентская машина на windows, а для подключения к удаленному серверу используется программа putty.
Создание файлов ключей.
Потребуется программа putty-gen
В putty-keygen жмем «Generate».
Желательно задать пароль для ключа и комментарий.
Сохраняем публичный и приватные ключи. Приватный держим в сухом прохладном безопасном месте. Публичный ключ копируем на сервер, которому подключаемся.
На сервере создаем создаем папку
mkdir ~/.ssh
На папку устанавливаем права 700.
chmod .ssh 700
Публичный ключ, который сгенерировал putty-gen, нужно привести к формату openssh. Делается так:
ssh-keygen -i -f NAME_YOUR_PUB_KEY.pub >> .ssh/authorized_keys
Проверяем вход по ключу ssh в putty
Далее необходимо добавить нужные настройки в putty. В настройках putty вставляем путь к файлу ключей (приватный ключ).
Подключаемся. Проверяем работу. Если пароль для ключа задан, то сервер его запрашивает.
login as: ********** Authenticating with public key "******" Passphrase for key "******":
Если все прошло отлично, отключаем вход по паролю в конфиге ssh (/etc/ssh/sshd_config).
PasswordAuthentication no
Собственно, всё.