SSH доступ с помощью RSA ключей | Windows для системных администраторов

SSH доступ с помощью RSA ключей

Небольшая инструкция по организации SSH доступа к удаленному Linux серверу. Напомним, что стандартный метод аутентификации пользователя на сервере Unix (Linux, FreeBSD) при доступе по SSH – пара логин и пароль. Но вводить их не всегда удобно, особенно если таких серверов много. Существует альтернатива такому типу доступа – организация SSH доступа по паре RSA ключей (открытому и закрытому) и кодовой фразе (которая, в общем-то, необязательна).

В этой статье мы рассмотрим использование подобного типа доступа, который можно реализовать с помощью одной из популярнейшей программы работы по SSH   — PuTTY.

Для работы нам понадобятся следующие утилиты семейства PuTTY:

  • puttygen.exe — пакет для создания пары ключей
  • putty.exe — сам ssh терминал
  • pscp.exe — утилита копирования файлов по протоколу scp

Генерируем пару RSA ключей


Для этого запускаем утилиту PuTTYgen, проверяем, что в качестве типа ключа выбран «SSH-2 RSA» и нажимаем кнопку «Generate«.

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

Генерируем rsa ключи

В поле «Key comment» можно задать описание ключа (оно будет отображается во время аутентификации по ключу).

В поле «Key passphrase» и «Confirm passphrase» указывает пароль для активации ключа (он будет запрашиваться при подключении).  Если ключевую фразу не задать, то подключение будет осуществляться без пароля: это очень удобно, но не очень безопасно, т.к. для доступа к серверу злоумышленнику достаточно стянуть у вас файл с закрытым ключом (именно поэтому рекомендуется хранить приватный ключ в секрете: на внешнем носителе USB, зашифрованном томе и т.д.).

Затем нажимаем кнопки «Save public key» и «Save private key» и сохраняем соответственно открытый и закрытый ключи в файл с именами, например: «public.key«и «private.ppk«.

Настраиваем публичный ключ на сервере Linux.


Файл открытого ключа  «public.key» нужно скопировать на тот сервер Linux, к которому планируется подключение. Для этого воспользуемся утилитой pscp.exe. Команда копирования файла будет выглядеть примерно так:

pscp c:\key\public.key root@192.168.1.21:/tmp/foo

Далее скопированный ключ нужно поместить в домашний каталог пользователя в файл ~/.ssh/authorized_keys .

Для этого заходим на сервер по SSH (как обычно) и выполняем следующую команду:

$ ssh-keygen -i -f /tmp/foo/public.key >> /home/myuser/.ssh/authorized_keys

где myuser, имя пользователя, которому будет разрешено авторизоваться по данному ключу.

Также не забудьте убедитесь, что на сервере разрешена авторизация по ключу. Для этого в файле /etc/ssh/sshd_config должны быть раскоментированы следующие строки:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile     .ssh/authorized_keys

Подключаемся по SSH с помощью ключа

Запускаем PuTTY и в левой части экрана переходим в раздел Connections -> SSH -> Auth.

Выбираем закрытый rsa ключ  в putty

Находим строку «Private key file for authentication», после чего нужно нажать кнопку «Browse» и указать наш файл с приватным ключом «private.ppk».
Затем на основной вкладке указываем имя/ip адрес нашего Linux сервера и запускаем подключение. После чего система как обычно попросит указать логин, а затем кодовую фразы ключа (если она указывалась). Если ключевая фраза не указана, то консоль сервера откроется без пароля.
Чтобы при каждом подключении не лезть в настройки Auth и указывать файл ключа, настройки можно сохранить, для этого на главной вкладе есть кнопки Save (сохранить настройки PuTTY) и Load (загрузить настройки). Сохранить настройки putty Все сохраненный настройки Putty хранятся в реестре, поэтому их в принципе можно перенести с одного компьютера на другой простым экспортом/импортом куска реестра (подробнее описано в статье Перенос настроек PuTTY)

Кроме того, чтобы каждый раз вручную не вводить имя пользователя, логин пользователя также можно сохранить в PuTTY (пункт Connection\Data\Auto-login username).

Если что не получается, анализируем лог /var/log/auth.log на сервере.

Еще записи по теме: Linux
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)