Ubuntu

將伺服器添加到 known_hosts

  • February 19, 2015

**我想從命令行將 github.com 添加到 known_hosts 文件,**因為我正在創建一個 puppet 清單來配置遠端伺服器。

我試過了:

"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 文件放在 puppet 伺服器上並直接從 puppet 中提供文件來處理這個問題:

file{
 "/home/appuser/.ssh/known_hosts":
 owner => "appuser",
 group => "appuser",
 mode => 755,
 source => "puppet:///modules/ssh/known_hosts",
 require => File["/home/appuser"];
}

這會從 puppet 儲存庫中複製格式正確的 known_hosts 文件,相應地設置使用者,並確保其具有正確的權限。對我們很有效。

在對已接受答案的評論中提到了這一點,但我只是遇到了這個問題,並認為這個更清潔的解決方案值得擁有自己的答案。

Puppet 的核心sshkey類型將密鑰安裝到伺服器範圍的 /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',
}

會很好地安裝它。

引用自:https://serverfault.com/questions/409320