使用Jenkins和Git进行身份验证

时间:2013-03-16 13:19:47

标签: git jenkins

我想将Jenkins与Bitbucket上的存储库一起使用。为此,我使用用户jenkins和命令ssh-keygen -t rsa -C "my_email"创建了一个ssh密钥。我在Bitbucket上添加了公钥,我可以使用git clone ...克隆一个项目。

但是当我在Jenkins中配置项目时,我把网址git@bitbucket.org:my_username/my_repository.git

这是错误:

Failed to connect to repository : Command "git ls-remote -h git@bitbucket.org:skurty/ma-carte-augmentee-bo.git HEAD" returned status code 128:

stdout: 

stderr: ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory 
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

如果我做ssh git@bitbucket.org,我会得到:

PTY allocation request failed on channel 0
conq: logged in as my_username.

You can use git or hg to connect to Bitbucket. Shell access is disabled.
Connection to bitbucket.org closed.

我还尝试创建文件~/.ssh/authorized_keys并将公钥放入其中,但问题相同。

我还用sudo /etc/init.d/jenkins restart

重新启动了jenkins

感谢您的帮助:)

PS:我正在使用Debian Squeeze 64位

4 个答案:

答案 0 :(得分:3)

我发现使其工作的唯一方法是从我的ssh键中删除密码。我猜jenkins'即使我在Credentials插件的高级部分设置了密码,git插件也无法提供密码。

$ ssh-keygen -p

提供私钥的位置,输入您当前的密码并将新密码留空。

答案 1 :(得分:3)

问题来自于您从未使用GIT上的用户JENKINS登录

因此,您应该执行以下操作:

登录JENKINS机器:

sudo su jenkins
ssh git@bitbucket.org

验证访问权限。

现在你应该可以用git

执行jenkins构建了

答案 2 :(得分:1)

id_rsa用户的主目录中,jenkins或您的私钥是否被调用?

如果使用本机程序包安装,则该文件应位于/var/lib/jenkins/.ssh中,/var/lib/jenkins/.ssh的权限应为700,而/var/lib/jenkins/.ssh/id_rsa的权限应为600 {1}}

答案 3 :(得分:0)

您可能需要在BitBucket帐户中添加SSH密钥以及Manage_Account>> SSH_Keys>>添加密钥

但是,如果您仍然遇到任何问题:请尝试以下步骤教程:

http://777chmod.wordpress.com/2013/07/28/jenkins/

http://777chmod.wordpress.com/2013/08/01/ssh/