Метод аутентификации с открытым ключом в SSH использует пары открытых и закрытых ключей SSH. Пары ключей поддерживают использование различных алгоритмов и размеров блоков. Закрытый ключ может быть защищен парольной фразой, а если парольная фраза не задана, то возможен автоматический вход без пароля для удаленного выполнения команд и передачи файлов.
Пары открытых и закрытых ключей SSH можно создать с помощью программы ssh-keygen. ssh-keygen обычно поставляется в комплекте с пакетами клиентов SSH и входит в большинство дистрибутивов Linux по умолчанию.
ssh-keygen - это приложение командной строки, которое можно использовать в терминале.
Шаги по созданию пар открытых и закрытых ключей SSH с помощью ssh-keygen
Запустите свое любимое приложение терминала.
Запустите команду ssh-keygen без указания каких-либо опций.
1 | ssh-keygen |
Если опция не указана, ssh-keygen сгенерирует 2048-битную пару ключей rsa. Вы можете изменить размер и тип ключа, используя опции -b и -t соответственно, как показано в следующем примере.
1 | ssh-keygen -b 521 -t ecdsa |
Возможные значения типов ключей: dsa, ecdsa, ed25519 и rsa.
Укажите местоположение и имя файла для сохранения пары ключей.
1 | Enter file in which to save the key (/home/user/.ssh/id_rsa): |
По умолчанию он находится в папке .ssh в вашем домашнем каталоге, а имя файла по умолчанию - id_<тип_ключа>.
Введите кодовую фразу для защиты ключа (необязательно).
1 2 | Enter passphrase (empty for no passphrase): Enter same passphrase again: |
Не вводите парольную фразу, если хотите использовать ключ для беспарольного входа в систему SSH.
Ваша пара открытых и закрытых ключей SSH будет создана и сохранена в указанном вами ранее месте.
1 2 | Your identification has been saved in /home/user/.ssh/id_rsa. Your public key has been saved in /home/user/.ssh/id_rsa.pub. |
Открытый ключ будет иметь расширение .pub, добавленное к имени файла.
Отпечаток и случайная карта для вашего SSH-ключа будут отображаться для визуального запоминания.
Проверка разрешения созданных ключей (необязательно).
1 | ls -l ~/.ssh/id_rsa* |
Пример вывода
1 2 | -rw------- 1 user user 2590 Apr 29 11:22 /home/user/.ssh/id_rsa -rw-r--r-- 1 user user 563 Apt 29 11:22 /home/user/.ssh/id_rsa.pub |
Обратите внимание, что закрытый ключ (/home/user/.ssh/id_rsa) имеет очень строгие права, где только владелец имеет право на чтение и запись. Группа пользователя и другие пользователи не имеют никаких разрешений, связанных с ними.