22.07.2020

Генерация SSH-ключей

Рассмотрим создание SSH-ключей в Linux и Windows для подключения к серверу под управлением ОС Linux.

Использование SSH-ключей не только позволяет подключаться к серверу без пароля, но и повышает уровень безопасности сервера. Причина проста - пароль можно подобрать, а вот на подбор ключа могут уйти десятилетия. Ключ состоит из двух частей - открытой и закрытой. Именно открытый ключ передается на сервер, а закрытый ключ остается на ПК клиента. Если вы опасаетесь за безопасность ключа, его можно защитить парольной фразой при генерации.

Создание ключей выполняется командой

ssh-keygen -t rsa

На что стоит обратить внимание.

OpenSSH поддерживает генерацию нескольких типов ключей:

  • dsa
  • ecdsa
  • ed25519
  • rsa
  • rsa1

Последнее время, надежность DSA-ключей ставится под сомнение и рекомендуют использовать RSA-ключи.

Если отсутствует каталог “.ssh” в каталоге вашей учетной записи (это скрытый каталог), то он будет создан. Так было не всегда и возможно его придется создать вручную. passphrase - парольная фраза для защиты ключа. Если не желаете её задавать, тогда просто нажимаете Enter. Далее вводится подтверждение этой фразы, либо также Enter. В результате выполнения команды, будет показан слепок ключа и его псевдографическое изображение. Открытый ключ располагается по пути /home/administrator/.ssh/id_rsa.pub. Закрытый - /home/administrator/.ssh/id_rsa.

Рассмотрим создание ключа через утилиту PuTTY-Gen.

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

Запускаем программу.

В открывшемся окне проверяем значение переключателя “Type of key to generate”, должно быть RSA, кликаем по кнопке Generate.

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

Должен получиться примерно такой результат:

Копируем текст открытого ключа из поля “Public key for pasting into OpenSSH authorized_keys file:” временно в любой текстовый файл. Сохраняем закрытый ключ нажав соответствующую кнопку. При необходимости указываем парольную фразу.

Открытый ключ должен начинаться с ssh-rsa.

Добавление ключа.

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

/home/<имя_пользователя>/.ssh

В данном случае, имя пользователя administrator.

В *nix-подобный операционных системах экспорт открытого ключа на сервер выполняется командой:

cat ~/.ssh/id_dsa.pub | ssh -l remonet_user_name 10.10.0.1 "cat >> .ssh/authorized_keys"

remote_user_name - имя пользователя на удаленном сервере, под которым и будет происходить дальнейшее подключение.

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