Почему в SSH-клиенте с опцией -i необходимо указывать закрытый ключ?

Почему в SSH-клиенте с опцией -i необходимо указывать закрытый ключ?

В ssh man сказано:

-i identity_file
             Selects a file from which the identity (private key) for public key authentication is read.  The default is
             ~/.ssh/identity for protocol version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ed25519 and
             ~/.ssh/id_rsa for protocol version 2.  Identity files may also be specified on a per-host basis in the con‐
             figuration file.  It is possible to have multiple -i options (and multiple identities specified in configura‐
             tion files).  If no certificates have been explicitly specified by the CertificateFile directive, ssh will
             also try to load certificate information from the filename obtained by appending -cert.pub to identity file‐
             names.

В нем говорится, что идентификационный файл является ЧАСТНЫМ ключом.

Но не нарушает ли это принцип безопасности, согласно которому закрытый ключ должен храниться в секрете?

Если ssh передает ключ по сети, он может быть скомпрометирован.

Я ожидаю, что целевая машина сохранит закрытый ключ и проверит открытый ключ входящего пользователя.

Что не так в моем понимании?

Если ssh отправляет закрытый ключ по сети, то в чем его преимущество перед простым использованием пароля?

решение1

SSH никогда не отправляет закрытый ключ по сети. Это было бы, на самом деле, глупо.

Закрытый ключ используется только для ответа на «вызов» от целевого хоста, который генерируется с использованием соответствующего открытого ключа. Ответить на вызов, не обладая закрытым ключом, крайне сложно, что делает этот вид связи безопасным, поскольку вы не можете взломать его (в приемлемые сроки) путем угадывания, т. е. грубой силы.

Связанный контент