Назад | Перейти на главную страницу

Добавить сервер в known_hosts

Я хочу добавить 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',
}

Установлю красиво.