我使用无主木偶安装来配置我的开发箱,我需要克隆一个私人仓库,但vcsrepo不会以特定用户身份运行,因此使用了错误的ssh密钥。
根据vcsrepo docs,这应该作为我的非root用户运行:
vcsrepo { '/path/to/repo':
ensure => present,
provider => git,
source => 'git://example.com/repo.git',
user => 'blake',
}
但每次运行时我认为它仍然以root身份运行,因为我收到了这个错误:
Error: Execution of 'git clone git@github.com:private-org/private-repo.git /home/blake/code/private-repo' returned 128: Cloning into '/home/blake/code/private-repo'...
Host key verification failed.
fatal: Could not read from remote repository.
如果我手动执行git clone它运行得很好,所以我知道为我的用户帐户设置了正确的ssh密钥。
更新1:
好的,我添加了--debug
标记,但它并没有真正提供更多信息。
Debug: Executing 'git clone git@github.com:private-org/private-repo.git /home/blake/code/private-repo'
但我认为这与我的'known_hosts'有关。文件。如果主机已知它可以正常工作,否则它会显示上面的错误。所以我不知何故需要弄清楚如何填充'known_hosts'文件,以便vcsrepo命令可以工作。
答案 0 :(得分:2)
在这种情况下,Host key verification failed
错误与“已知主机”中的丢失主机有关。文件。
如果从命令行执行git clone
,它将提示您将主机条目添加到' known_hosts'文件,但如果puppet运行git clone
命令,这将无法工作。
为了解决这个问题,我将ssh-keyscan -t rsa github.com
的输出添加到了我的'known_hosts'使用file_line类型通过puppet文件。我也关掉了HashKnownHosts'在我的.ssh/config
文件中。