Почему один и тот же файл закрытого ключа генерирует две разные строки открытого ключа?

У меня есть пара ключей ssh, которая была сгенерирована для использования в качестве ключа доступа для моего сервера GoCD CI / CD. Он работал, но из-за некоторых изменений конфигурации, которые я сделал (переместил сервер из контейнера на хост Linux), мне нужно было переустановить ключи на хосте Linux, что я и сделал. Я уже сгенерировал пару и вместо того, чтобы изменять общедоступный key на Bitbucket Я решил, что будет проще продолжать использовать ту же пару (также у меня есть несколько агентов CI / CD, работающих в контейнерах, которые в настоящее время используют эту пару ключей).

Итак, вот где начинается моя проблема. Я перемещаю свой предварительный -сгенерированный закрытый ключ ( gocd ) из моего промежуточного каталога в домашний адрес пользователя go ( / var / go / ):

[ip-10-71-10-66 docker]# cp ./gocd ~go/.ssh/id_rsa
[root@ip-10-71-10-66 docker]# diff gocd ~go/.ssh/id_rsa
[root@ip-10-71-10-66 docker]#

Пока все хорошо, файл id_rsa и файл gocd кажутся одинаковыми. Однако, когда я сравниваю открытые ключи ...

[root@ip-10-71-10-66 docker]# ssh-keygen -y -e -f ~go/.ssh/id_rsa && ssh-keygen -y -e -f gocd

    ---- BEGIN SSH2 PUBLIC KEY ----
Comment: "2048-bit RSA, converted by root@ip-10-71-10-66 from OpenSSH"
TEXT REMOVED

GsH8pAPy3iQI54HvSZn9qNtA19pL+8r/DlFb6X4qeTyvte0iEIqAYmuSJglcf6OlTx0FxR
HK9y3iyG01zdcBdr2+O06j
---- END SSH2 PUBLIC KEY ----

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "2048-bit RSA, converted by root@ip-10-71-10-66 from OpenSSH"
TEXT REMOVED

bse2UtKDtTbN1EbUZ7XxLOeVG6j6CDokLagJ9LOxdLW0Zb4aMnm/sg1x5VcAY6rQKFEnSl
F3z68VhKCw0ZOqVBNg8SGz
---- END SSH2 PUBLIC KEY ----

Надеюсь, из этого примера вы сможете понять, почему я запутался. Что действительно странно, так это то, что открытый ключ, полученный из файла id_rsa (первый вывод последней команды) , на самом деле совпадает с более ранним закрытым ключом, который я сгенерировал .

Что здесь происходит? Происходит ли кеширование в ssh-agent , о котором я не знаю? Что-то еще происходит?

0
задан 20 September 2017 в 19:41
1 ответ

Ответ на этот вопрос удручающе прост. Очевидно, при наличии пары id_rsa и id_rsa.pub команда ssh-keygen, которая оценивает закрытый ключ и выводит связанный открытый ключ, будет игнорировать содержимое ] id_rsa и предположим, что соответствующий файл id_rsa.pub совпадает.

Удаление несовпадающего файла id_rsa.pub из каталога ~ go / .ssh / позволило ssh-keygen правильно вывести связанный открытый ключ.

0
ответ дан 5 December 2019 в 07:26

Теги

Похожие вопросы