Что именно делает `ssh-keygen -A`?

$ ssh-keygen --help
ssh-keygen: unrecognized option: -
usage: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa]
              [-N new_passphrase] [-C comment] [-f output_keyfile]
   ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
   ssh-keygen -i [-m key_format] [-f input_keyfile]
   ssh-keygen -e [-m key_format] [-f input_keyfile]
   ssh-keygen -y [-f input_keyfile]
   ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile]
   ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile]
   ssh-keygen -B [-f input_keyfile]
   ssh-keygen -D pkcs11
   ssh-keygen -F hostname [-f known_hosts_file] [-l]
   ssh-keygen -H [-f known_hosts_file]
   ssh-keygen -R hostname [-f known_hosts_file]
   ssh-keygen -r hostname [-f input_keyfile] [-g]
   ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point]
   ssh-keygen -T output_file -f input_file [-v] [-a rounds] [-J num_lines]
              [-j start_line] [-K checkpt] [-W generator]
   ssh-keygen -s ca_key -I certificate_identity [-h] [-n principals]
              [-O option] [-V validity_interval] [-z serial_number] file ...
   ssh-keygen -L [-f input_keyfile]
   ssh-keygen -A
   ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number]
              file ...
   ssh-keygen -Q -f krl_file file ...

Вы можете заметить, что ssh-keygen -A явно отсутствует документация

$ ssh-keygen -A
ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519 

Кажется, он генерирует (A) все файлы ключей, но я не вижу никаких ключей в /root/.ssh/, Просто чтобы подтвердить, я побежал ssh-keygen без параметров, введенные через все запросы, и у меня были ключи, как и ожидалось.

Итак, вопрос в том, что именно происходит?

3 ответа

Решение

Это задокументировано в ssh-keygen руководство:

-A

Для каждого из типов ключей (rsa1, rsa, dsa, ecdsa и ed25519), для которых ключи хоста не существуют, создайте ключи хоста с использованием пути к файлу ключа по умолчанию, пустой парольной фразы, битов по умолчанию для типа ключа и комментария по умолчанию, Это используется сценариями системного администрирования для генерации новых ключей хоста.

Итак, если в вашей системе еще нет ключей хоста, ssh-keygen -A создам их. Воссоздание ключей хоста заставит вашего SSH-клиента жаловаться на то, что отпечаток ключа для хоста изменился при следующем подключении к машине, и...

Are you sure you want to continue connecting (yes/no)? 

(при условии, что вы ранее успешно подключились к машине с SSH)

Я подозреваю, что часть задаваемого вопроса - где ssh-keygen -A хранит результат, вопрос, который я пытался задать себе, и думаю, что я ответил.

Вы можете довольно быстро увидеть, где хранятся результаты в вашей системе, выполнив команду "ssh-keygen -A" от имени обычного пользователя (НЕ ROOT): тогда разрешения не позволят вам переписать что-либо:

user> ssh-keygen -A
ssh-keygen: generating new host keys: RSA1 open /etc/ssh/ssh_host_key failed: Permission denied.
Saving the key failed: /etc/ssh/ssh_host_key.
ssh-keygen: generating new host keys: ED25519 open /etc/ssh/ssh_host_ed25519_key failed: Permission denied.
Saving the key failed: /etc/ssh/ssh_host_ed25519_key.

показывая, что системные ключи хранятся в /etc/ssh. Это настраивается через файл sshd_config:

user> grep etc/ssh /etc/ssh/sshd_config 
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key

Из того, что я прочитал, -A опция генерирует (A)ll ключи хоста по умолчанию.

Ключ хоста - это криптографический ключ, используемый для аутентификации компьютеров в протоколе SSH. Вот отличное объяснение от ssh.com

Когда я нажал войти через ssh-keygen подсказки, ключ был сгенерирован в ~/.ssh/ папки; как я и ожидал. Однако при запуске ssh-keygen -AЯ не вижу никаких дополнительных клавиш в ~/.ssh/,

После прочтения поста с ssh.com, я обнаружил недавно отчеканенные ключи, сидящие в /etc/ssh/,

ОБНОВИТЬ:

Ознакомьтесь с документацией объяснения hellhell.com/ explain?cmd=ssh-keygen+-A в соответствии с рекомендациями @Biffen в комментариях к исходному вопросу!

Другие вопросы по тегам