Я хочу добавить github.com в файл known_hosts из командной строки поскольку я создаю манифест марионетки для предоставления удаленного сервера.
Я пытался:
"ssh-keyscan -H github.com > /home/ubuntu/.ssh/known_hosts"
Но когда сервер пытается получить доступ к github:
Failed to add the RSA host key for IP address '207.97.227.239' to the list
of known hosts (/home/ubuntu/.ssh/known_hosts).
Я также пробовал:
"ssh-keyscan -H github.com,207.97.227.239 > /home/ubuntu/.ssh/known_hosts"`
Но доступ к github выдает:
Host key verification failed.
Я уверен, что это бесполезно, но если я ssh мой сервер, а затем ssh github и следую инструкциям, я получаю следующее сообщение Permanently added 'github.com,207.97.227.239' (RSA) to the list of known hosts
и тогда он будет работать отлично.
Спасибо
Мы решаем эту проблему, помещая файл known_hosts на сервер марионетки и обслуживая файл непосредственно из марионетки:
file{
"/home/appuser/.ssh/known_hosts":
owner => "appuser",
group => "appuser",
mode => 755,
source => "puppet:///modules/ssh/known_hosts",
require => File["/home/appuser"];
}
Это копирует правильно отформатированный файл known_hosts из репозитория марионеток, соответствующим образом настраивает пользователя и гарантирует, что у него правильные разрешения. У нас хорошо работает.
Это упоминается в комментариях к принятому ответу, но я только что столкнулся с этим и подумал, что это гораздо более чистое решение заслуживает своего собственного ответа.
Ядро марионетки sshkey type устанавливает ключи в файл / etc / ssh / ssh_known_hosts на уровне сервера без необходимости затирать весь файл. В этом случае:
sshkey {'github':
name => 'github.com',
ensure => present,
key => '[GitHub key (just the part after ssh-rsa, starting with AAA)]',
type => 'ssh-rsa',
}
Установлю красиво.