Могу ли я найти локальный закрытый ключ ssh по отпечатку пальца?

Возможно, я упускаю что-то очевидное, но после того, как надоело ограничение ssh-agent на 5 ключей, я начинаю искать способы лучшего управления ключами ssh.

Если я создаю новую пару ключей ssh ​​с помощью ssh-keygen -t rsa, я могу использовать ssh-keygen -lf, чтобы получить отпечатки пальцев как для закрытого, так и для открытого ключа, и они оба сообщают об одном и том же отпечатке пальца.

Тогда я наивно ожидаю сделать что-то вроде ssh-keyscan, чтобы получить удаленные отпечатки открытого ключа на этом хосте и сопоставить этот отпечаток с одним из моих закрытых ключей и инициировать соединение ssh с использованием этого закрытого ключа.

Очевидно, что отпечатки пальцев, которые я получаю с помощью ssh-keyscan, даже не похожи на отпечатки пальцев для локальных ключей.

Есть какое-либо решение, чтобы решить эту дилемму?

2 ответа

Решение

ssh-keyscan команда для сканирования ключей хоста (/etc/ssh/ssh_host_*.pub), а не ключи, используемые для аутентификации / авторизации пользователей.

Вам нужно будет подключиться к удаленному хосту и изучить различные файлы author_keys. Сложный момент заключается в том, что в файле author_keys может быть много ключей, поэтому вам нужно выполнить некоторые манипуляции, чтобы извлечь отдельные ключи и распечатать их.

Есть другой вопрос / ответ на сервере с некоторыми хорошими методами.

Я думаю, что избегаю вашей дилеммы, просто определяя априори, какую пару ключей использовать для какого хоста в моем ~/.ssh/config

Host www
 HostName www.example.com
 IdentityFile ~/.ssh/key1
Host dev
 HostName dev.example.org
 IdentityFile ~/.ssh/key2
Другие вопросы по тегам