我正在使用Puppet,我想通过cronjobs与特定用户一起使用Git repos。我有一个私钥位于我的〜/ .ssh目录中,我用这个exec添加到我的ssh-agent中:
exec {
'add-ssh-key':
cwd => '/home/user/.ssh',
command => "bash -c 'eval $(ssh-agent) ssh-add rsa_key'",
path => '/usr/bin:/usr/sbin:/bin:/sbin',
provider => 'shell'
}
根据规定启动代理并将身份添加到代理。但是我不能拉回购(cronjob也不能),因为我可能没有连接到正确的ssh-agent(当拉它要求输入密码时)。
还有另一种方法可以实现这一目标吗?
由于
答案 0 :(得分:2)
您可以在用户的~/.ssh/config
文件中添加一个部分,以指示其在连接到git
服务器时使用该密钥。
Host my-git-server
Hostname git.example.net
User gituser
IdentityFile /home/user/.ssh/rsa_key
让Puppet确保私钥具有适当限制的权限。
无需涉及ssh-agent
。