SSH. Аутентификация по ключу

Практически большую часть времени приходится удаленно администрировать сервера. Основным средством для удаленного администрирования (точнее удаленного доступа к консоли) является протокол SSH, реализация которого присутствует во FreeBSD в виде свободного пакета — OpenSSH. Естественно, что для входа на сервер посредством SSH необходимо пройти аутентификацию. Возможно несколько способов аутентификации, но в статье пойдет речь всего лишь об одном — аутентификацию по ключу. Данный способ хорош тем, что лишает смысла любые атаки с перебором паролей, но есть один, хоть и не большой, но минус — ключ придется всегда носить с собой.

Итак, для того, чтобы OpenSSH стал пускать на сервер по ключам, необходимо в конфиге /etc/ssh/sshd_config привести следующие параметры к такому виду:

# Разрешает аутентификацию по ключу для первой и второй версии протокола
RSAAuthentication yes
PubkeyAuthentication yes
# Файл, в котором находятся разрешенные (открытые) ключи
AuthorizedKeysFile  .ssh/authorized_keys

Если в остальных методах аутентификации у вас нужды нет, то отключите их. Осталось дело за малым, сгенерировать пару ключей (открытый и закрытый), которые будут использоваться для входа на сервер. Открытый ключ размещается на необходимом сервере, а закрытый ключ находится только у вас и будет использоваться для аутентификации. Для генерации ключей предназначена утилита ssh-keygen. Вот список некоторых полезных параметров:

  • -b — битность ключа;
  • -f — имя файла, в который будет записан ключ (если не указывать, то открытый и закрытый ключи будут находиться в директории ~/.ssh);
  • -t — тип ключа (rsa, dsa и т.п.);

Таким образом, чтобы сгенерировать пару ключей, необходимо выполнить такую команду:

ssh-keygen -t rsa -b 2048

В директории ~/.ssh должно появиться два файла id_rsa (закрытый ключ) и id_rsa.pub (открытый ключ). Закрытый ключ вы носите везде с собой, а открытый нужно добавить в файл .ssh/authorized_keys на удаленный сервер пользователю, под которым будет осуществляться вход. 

cat id_rsa.pub >> ~user/.ssh/authorized_keys

Также необходимо задать правильные права доступа на нужные папки и файлы (если этого не было сделано ранее):

chmod 700 ~user/.ssh
chmod 600 ~user/.ssh/authorized_keys

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

Полученный файл нужно указывать в putty: Connection -> SSH -> Auth в поле "Private key file for authentication". На этом все, пожелания/замечания прошу оставлять в комментариях, а вопросы задавать на форуме.

Гость (не проверено)

Утерян ключ как отключить на сервере

 

nekit
Утерян ключ как отключить на сервере
Если лазеек, типа доступа через FTP или еще как нет (чтобы залить новый ключ), то тогда только физически (зайти на сервер и указать новый ключ, либо внести в конфиг sshd соответствующие правки).

Добавить комментарий

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Яндекс.Метрика