Как сохранить ssh-keyscan результат с портом в .ssh / known_hosts

Когда я запускаю

ssh-keyscan -p NNN -t rsa GITHOST

, он производит жало вроде

GITHOST ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCZwBe6yneM2q2KEuQ3UV194hUcEcQ7b0xoYdKXKU6RrsxP2wup3uwC4q2SbPlW6XkjVtOIXY4c5aBaieMjNhIBFxGa2yUnTwZPFZiGMh/fwoZ2IsLsIE7XCj2q4eO1jmxvgWf7VAE7DVkGg5VTcRRoVOP5V15z9/saP5u4Tcwu1w==

И я добавляю его в файл ~ / .ssh / known_hosts .

Но git все еще спрашивает меня о проверке ключа. Может быть, из-за того, что в файле known_hosts нет информации о порте?

Как я могу создать правильные known_hosts в сценарии?

0
задан 16 September 2015 в 18:38
1 ответ

Обычно в этом нет необходимости, так как текущие версии ssh-keyscan добавят порт за вас. Старые версии этого не делали. Вы можете обработать строку с помощью sed следующим образом:

ssh-keyscan -p NNN -t rsa GITHOST | sed -E 's/^([^ \[]+) (.*)$/[\1]:NNN \2/'

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

Это приведет к следующему:

[GITHOST]:NNN ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCZw....

Обновление: я усовершенствовал приведенное выше регулярное выражение, чтобы оно хорошо работало с выводом ssh-keyscan в уже правильном формате.

1
ответ дан 13 April 2021 в 11:27

Теги

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