2015-11-08 68 views
2

我想添加我的私人git服務器的ssh密鑰到known_hosts文件中的1.9.3,但它不起作用。如何使用ansible將主機添加到known_host文件?

我有我的劇本以下條目:

- name: add SSH host key 
    known_hosts: name='myhost.com' 
       key="{{ lookup('file', 'host_key.pub') }}" 

我抄/etc/ssh/ssh_host_rsa_key.pub到host_key.pub和文件看起來像:

ssh-rsa AAAAB3NzaC1... [email protected] 

如果我運行我的playbook我總是得到以下錯誤信息:

TASK: [add SSH host key] 
****************************************************** 
failed: [default] => {"cmd": "/usr/bin/ssh-keygen -F myhost.com -f /tmp/tmpe5KNIW", "failed": true, "rc": 1} 

我在做什麼錯了?

+0

如果您手動運行命令'ssh-keygen -v -F myhost.com -f/path/to/host_key.pub',會發生什麼情況。這實際上與Ansible試圖調用的命令完全相同,因此希望能夠報告Ansible遇到的錯誤。確保您以與運行PlayBook的用戶相同的用戶身份運行該命令。 –

回答

3

遠程主機公鑰的副本需要一個名稱,該名稱需要與您爲已知主機指定的名稱相匹配。

在你的情況,在前面加上"myhost.com "host_key.pub密鑰文件如下:

myhost.com ssh-rsa AAAAB3NzaC1... [email protected] 

參考: Ansibleknown_hosts module,特別是參數

2

使用SSH- keyscan生成host_key.pub是另一種方式。

ssh-keyscan myhost.com > host_key.pub 

該命令將生成這樣的格式。

$ ssh-keyscan github.com > github.com.pub 
# github.com SSH-2.0-libssh-0.7.0 
# github.com SSH-2.0-libssh-0.7.0 

$ cat github.com.pub 
github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ== 
+2

'ssh-keyscan -t ecdsa-sha2-nistp256 myhost.com> test1.pub'對於known_hosts更好 –

相關問題