为什么用户代理会不断更改PID并丢失密钥?

时间:2016-05-20 22:54:41

标签: github jenkins ssh rsa ssh-agent

大图:试图将GitHub连接到Jenkins。 Jenkins在用户Jenkins下运行在Ubuntu上。(我以Pierre身份登录,然后更改为用户Jenkins)

我正在关注This Guide以连接两者。 我正在尝试从Jenkins命令行生成密钥。 我用了

ssh-keygen -t rsa -C 'pierre@myplace.com'

生成密钥并使用标准配置。但是当我尝试连接到GitHub时,我得到以下内容:

jenkins@Desktop:~$ eval "$(ssh-agent -s)"
Agent pid 6328
jenkins@Desktop:~$ ssh-add -l -E md5
The agent has no identities.
jenkins@Desktop:~$ ssh-add ~/.ssh/id_rsa
Identity added: /var/lib/jenkins/.ssh/id_rsa (/var/lib/jenkins/.ssh/id_rsa)
jenkins@Desktop:~$ ssh-add -l -E md5
2048 MD5:ad:1f:9d:5c:b5:cc:8e:bb:06:5b:c2:5e:68:67:77:24 /var/lib/jenkins/.ssh/id_rsa (RSA)
jenkins@Desktop:~$ ssh -T git@github.com
Permission denied (publickey).
jenkins@Desktop:~$ eval "$(ssh-agent -s)"
Agent pid 6353
jenkins@Desktop:~$ ssh-add -l -E md5
The agent has no identities.

=>即使手动将密钥添加到ssh-agent后,它也无法连接!

1)代理商的PID发生了怎样的变化?

2)为什么它会失去身份?

3)为什么不连接?

1 个答案:

答案 0 :(得分:0)

问题1和2的答案是相同的:每个eval "$(ssh-agent -s)"每次都会启动一个新的ssh代理。 eval执行当时输出的文本作为shell命令,使其定义新的环境变量,告诉ssh-addssh如何使用新的ssh代理(也删除了信息)关于如何使用之前开始的任何其他ssh代理,尽管它们仍然在运行。)

我不知道问题3的答案,但是您尝试直接ssh到git@github.com似乎很奇怪,而且我找不到您发布的指南,它告诉您要做什么那。 AIUI,git@github.com不是你想要的东西,而是出现在Gitlab项目的URL中的东西,但我可能是错的。