В инструкции рассмотрен процесс генерации SSH ключа в Linux и Windows для подключения к виртуальному серверу под управлением операционной системы семейства Linux.
Использование SSH-ключей позволяет подключиться к серверу без использования пароля. При этом такой тип авторизации гораздо безопаснее, чем вход по паролю. Пароль может быть взломан, а ключи практически не поддаются расшифровке. Secure SHell-ключ состоит из открытого и закрытого ключей, которые представляют из себя длинные последовательности символов. Вы можете поместить открытый ключ на компьютер, а затем разблокировать его, подключившись к нему с клиентом, у которого есть закрытый ключ. Когда они совпадают, вы соединитесь с виртуальным сервером (no password). Также можно еще повысить уровень безопасности, если использовать кодовое выражение для защиты закрытого ключа.
Примечание.
- порт Secure SHell (SSH) по умолчанию - 22;
- по протоколу SSH можно удаленно управлять файлами с помощью SSHFS (Secure SHell FileSystem).
Для начала необходимо создать пару ключей на клиентской машине (ваш компьютер) с помощью программы PuttyGen.
После установки запускаем PuTTYgen, в меню Type of key to generate выбираем EdDSA и проверяем значение поля Curve to use for generating this key, оно должно быть равно Ed25519 (255 bits). Далее нажимаем Generate и свободно перемещаем курсор по экрану для выработки случайных данных.
В верхнем поле появится публичный ключ, который должен храниться на сервере.
В поле Key passphrase введите кодовую фразу. Использование кодовой фразы не является обязательным. Кодовая фраза имеет большие преимущества - безопасность ключа, независимо от способа его шифрования, по-прежнему зависит от того, что он никому не виден, если закрытый ключ с защитой кодовой фразой попадает в руки хакерам, они не смогут использовать ключ для входа до тех пор, пока не угадают кодовую фразу. Единственный недостаток фразы в том, что вы должны вводить его каждый раз при подсоединении к серверу.
В поле Confirm passphrase повторите ввод фразы.
Сохраните сгенерированные ключи в любое удобное для вас место нажав соответствующие кнопки Save private key и Save public key.
Для начала необходимо сформировать пару зашифрованных ключей на клиентской машине (ваш компьютер):
ssh-keygen -t ed25519
После того как вы введете команду, потребуется ввести имя файла в котором будет храниться закрытый ключ и кодовую фразу. Применение специальной фразы не является необходимым, но она имеет ряд преимуществ - вне зависимости от способа шифрования, надежность по-прежнему зависит от того, что он никому не виден, если закрытый ключ с защитой кодовым выражением попадает в руки хакерам, они не смогут использовать ключ для входа до тех пор, пока не угадают кодовую фразу. Единственный недостаток выражения в том, что вы должны вводить ее каждый раз при соединении с сервером.
Примечание.
Существуют специальные программы которые избавляют пользователей от неудобства каждый раз вводить ключевое выражение, например можно воспользоваться ssh-agent или ssh-add.
Примечание.
Если вы хотите выбрать значение предложенное по умолчанию, нажмите Enter.
Generating public/private ed25519 key pair.
Enter file in which to save the key (/root/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_ed25519.
Your public key has been saved in /root/.ssh/id_ed25519.pub.
The key fingerprint is:
SHA256:lnxKTtm5CrNeFbBQVf+8M6QUqb4pQeQXqx4y2JQ6QPA root@auto.local
The key's randomart image is:
+--[ED25519 256]--+
| . .o*B@|
| . o Eo.@B|
| + + o.=.+|
| o * = +o |
| . S = +. |
| . = = * + |
| . o o = = |
| . . o |
| . |
+----[SHA256]-----+
В примере открытый ключ теперь расположен в /root/.ssh/id_ed25519.pub, закрытый ключ теперь расположен в /root/.ssh/id_ed25519.
В Панели управления перейдите в Настройки → Личные настройки → SSH-ключи, нажмите на кнопку Добавить SSH-ключ. В поле Название ключа введите любое удобное для вас имя. Выберите опцию Свой ключ. В поле Код ключа вставьте сгенерированный вами ключ.
Примечание.
При создании сервера выберете в качестве способа подключения ssh-ключ.