Утилита ssh-keygen генерирует, управляет и конвертирует ключи аутентификации для ssh.
При использовании ssh-keygen для создания ключа необходимо указать параметр -t для определения типа создаваемого ключа.
Утилита ssh-keygen генерирует пару ключей SSH для аутентификации на сервере.
Эта утилита поставляется в комплекте с OpenSSH и по умолчанию создает 2048-битную пару ключей RSA.
Она поддерживает RSA и DSA, оба с разной длиной ключей.
Для создания безопасного соединения между двумя машинами рекомендуется длина ключа 4096 бит.
При генерации ssh-ключа для клиента вы можете столкнуться с приведенной ниже ошибкой:
-bash: ssh-keygen: command not found
ssh-keygen поставляется в комплекте с пакетом OpenSSH, но если он не установлен в вашей системе, вы можете установить его с помощью приведенных ниже команд в соответствии с вашим выбором операционной системы.
Дистрибутив | Команда |
---|---|
OS X | brew install openssh |
Debian | apt-get install openssh-client |
Ubuntu | apt-get install openssh-client |
Alpine | apk add openssh |
Arch Linux | pacman -S openssh |
Kali Linux | apt-get install openssh-client |
CentOS | yum install openssh |
Fedora | dnf install openssh |
Raspbian | apt-get install openssh-client |
Docker | docker run cmd.cat/ssh-keygen ssh-keygen |
ssh-keygen Примеры команд
1. Генерирование ключа в интерактивном режиме:
$ ssh-keygen
2. Указать файл, в котором нужно сохранить ключ:
$ ssh-keygen -f {{~/.ssh/filename}}
3. Сгенерировать ключ ed25519 с помощью 100 раундов функции деривации ключа:
$ ssh-keygen -t {{ed25519}} -a {{100}}
4. Сгенерировать 4096-битный ключ RSA с электронной почтой в качестве комментария:
$ ssh-keygen -t {{dsa|ecdsa|ed25519|rsa}} -b {{4096}} -C "{{comment|email}}"
5. Удалить ключи хоста из файла known_hosts (полезно, когда у известного хоста появился новый ключ):
$ ssh-keygen -R {{remote_host}}
6. Получение отпечатка ключа в формате MD5:
$ ssh-keygen -l -E {{md5}} -f {{~/.ssh/filename}}
7. Изменение пароля ключа:
$ ssh-keygen -p -f {{~/.ssh/filename}}
8. Изменить тип формата ключа (например, с формата OPENSSH на PEM), файл будет переписан на месте:
$ ssh-keygen -p -N "" -m {{PEM}} -f {{~/.ssh/OpenSSH_private_key}}
см. также:
- 🔐 Как установить сервер OpenSSH на Alpine Linux (включая Docker)
- 🐧 LFCA: основные советы по безопасности для защиты системы Linux
- 🔐 Как найти открытый ключ SSH
- 🔐 Настройка входа по SSH без пароля для нескольких удаленных серверов с помощью скрипта
- Как обезопасить ваш сервер Linux
- 🛠️ Исправление ошибки “WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED” на Linux
- 🔏 Обновите ваши ключи SSH!
- 🔐 Как отключить проверку ключей хоста SSH в Linux – Ubuntu / Debian / CentOS / Fedora