Jenkins 将vagrant上的ssh代理转发给vagrant以外的其他用户

Jenkins 将vagrant上的ssh代理转发给vagrant以外的其他用户,jenkins,ssh,vagrant,Jenkins,Ssh,Vagrant,我目前正在vagrant为我公司的测试环境设置一个虚拟机。当然,这台机器需要能够从我们的github存储库中提取数据。这应该使用主机的ssh密钥来实现。我已经准备好了 config.ssh.forward_agent = true 在我的vagrant文件中,连接到github在vagrant用户中运行良好。但是,由于该机器需要运行jenkins,因此jenkins用户也需要这样做。运行ssh add,但jenkins不会添加主机的密钥 我在这里找到了一些关于stackoverflow和sup

我目前正在vagrant为我公司的测试环境设置一个虚拟机。当然,这台机器需要能够从我们的github存储库中提取数据。这应该使用主机的ssh密钥来实现。我已经准备好了

config.ssh.forward_agent = true
在我的vagrant文件中,连接到github在vagrant用户中运行良好。但是,由于该机器需要运行jenkins,因此jenkins用户也需要这样做。运行
ssh add
,但jenkins不会添加主机的密钥


我在这里找到了一些关于stackoverflow和superuser的半相关讨论,但似乎没有一个能够解决这个问题。我不知道如何实现这一点,也不知道这在vagrant中是否可能实现,因此我非常感谢您的指点。

因为您没有包括任何确切的错误和您尝试过的内容

假设您在虚拟机上,并且希望从远程
git-repo
git-pull

您在VM上还有一个ssh私钥,该私钥被授权通过ssh从
git repo
中提取:

在VM的cli上尝试以下操作:

git config core.sshCommand 'ssh -i /root/.ssh/git_private.key -F /dev/null' && ssh-agent sh -c 'ssh-add /root/.ssh/git_private.key; git pull'

当然,还要引用私有ssh密钥的正确路径,您将使用该密钥对git repo进行身份验证,我运行了su命令切换到root。使用默认密码:vagrant

从那里
su jenkins
-将用户切换到jenkins,这次没有密码

运行ssh-keygen来生成密钥。将它们存储在建议的默认文件夹:/var/lib/jenkins/(实际重写了现有的文件)。这是这个jenkins用户的主文件夹,因为它不是一个普通用户/帐户,而是我相信的所谓的“服务帐户”

在那之后,我刚刚将.pub密钥上传到我的bitbucket帐户,一切正常,我的jenkins可以进行身份验证