Что вам не хватает, так это то, что открытый и закрытый ключи криптографически связаны друг с другом. Когда сгенерирован закрытый ключ, соответствующий открытый ключ также. Зашифруйте что-нибудь одним ключом, и расшифровать его можно только другим. Любой человек с открытым ключом может подтвердить, что сообщение могло прийти только от кого-то с закрытым ключом из-за этой криптографической связи.
Когда начинается сеанс SSH, каждая сторона использует это свойство для аутентификации другой. Во время рукопожатия секрет (технически он называется «nonce» и в основном это случайное число) шифруется открытым ключом получателя, а затем подписывается закрытым ключом отправителя. Когда это получено, получатель а) может проверить подпись с открытым ключом отправителя; и б) единственный, кто может расшифровать сообщение. Это подтверждает подлинность обмена. Если это рукопожатие происходит в обоих направлениях, обе стороны могут проверить друг друга. Это называется взаимной аутентификацией.
Таким образом, важен не ключ ключа, а криптографический принцип, связывающий открытый и закрытый ключи. Этот процесс обеспечивает возможность создания случайного сеансового ключа и безопасного его обмена с использованием пар открытого и закрытого ключей и является сердцем того, как SSH (или SSL или TLS в этом отношении) запускает сеанс.
Это означает, что ответ на ваш вопрос заключается в том, что если SSH настроен для взаимной аутентификации (т. Е. Вам не нужно вводить пароль), открытый ключ вашего клиента должен находиться в хранилище ключей сервера. Поскольку вы не можете изменить открытый ключ без изменения личного ключа, необходимо каждый раз перезагружать открытый ключ на сервере.