SSH-ключ это основа протокола Secure Socket Shell, который обеспечивает безопасное и зашифрованное соединение между удалёнными хостами. Ключи делятся на открытый и закрытый. Открытый ключ используется для шифрования данных и размещается на сервере, а закрытый ключ предназначен для дешифровки данных и хранится на клиенте.
Открытый ключ используется для шифрования данных при обращении к удалённому узлу. Это набор символов, доступный всем. Наличие одного лишь публичного ключа не даёт злоумышленнику преимуществ. Открытый ключ хранится на удалённом узле.
Закрытый ключ расшифровывает сообщения и хранится на устройстве, подключающемся к удалённому узлу. Его нельзя передавать в чужие руки, рекомендуется установить пароль для дополнительной защиты.
Типы шифрования
[-t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa]
RSA — по умолчанию ssh-keygen использует RSA, так как этот алгоритм обеспечивает совместимость, но требует больших ключей для безопасности. Длина ключа по умолчанию — 3072 бит, можно задать от 1024 до 16384 бит
DSA — алгоритм для электронной подписи, основанный на вычислительной сложности, длина ключа — 1024 бит.
ECDSA — схема подписи на эллиптических кривых с быстрой работой, но уязвима для квантовых вычислений.
ED25519 — схема подписи на эллиптических кривых с высокой безопасностью и скоростью, поддерживается с OpenSSH 6.5.
ECDSA-SK и ED25519-SK — те же алгоритмы с поддержкой аппаратного аутентификатора, доступны с OpenSSH 8.2 для двухфакторной аутентификации.
Генерация нового ключа SSH
Когда вам предложат выбрать файл для сохранения ключа, вы можете нажать клавишу Enter, чтобы принять расположение файла по умолчанию. Учтите, что если вы уже создали ключи SSH, утилита ssh-keygen может запросить замену существующего ключа. В таком случае рекомендуется создать ключ SSH с пользовательским именем. Для этого укажите расположение файла по умолчанию и замените id на имя вашего пользовательского ключа.
Enter file in which to save the key (/root/.ssh/id_ed25519): /root/.ssh/test
Вводим парольную фраза ключа (можно просто нажать Enter и не вводить пароль)
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Были созданы два файла: test и test.pub (в файле test.pub содержится открытый ключ). Теперь необходимо скопировать открытый ключ на сервер, к которому мы хотим подключиться.