使用ssh访问bitbucket的Jenkins git插件:权限被拒绝(publickey).致命:无法从远程存储库读取

Far*_*jmi 12 git ssh bitbucket jenkins

我无法通过bitbucket.org上的私人git repo获取Jenkins git插件进行身份验证.我使用ssh-keygen生成了私钥/公钥对,并在ssh密钥帐户页面下的bitbucket帐户中设置了公钥.

在作业配置页面中,我将源代码管理部分设置如下:

Repository URL: git@bitbucket.org:mproject.git (the SSH url for clone)
Credentials: The private key id_rsa generated by ssh-keygen (no passphrase) and user git.
Run Code Online (Sandbox Code Playgroud)

它立即给出以下错误:

Failed to connect to repository : Command "git -c core.askpass=true ls-remote -h git@bitbucket.org:myproject.git HEAD" returned status code 128:
stdout: 
stderr: Permission denied (publickey). 
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)

当我从shell中的工作区目录中的命令行执行相同的git命令时,它可以正常工作.我在构建环境/属性文件路径中指定了〜/ .bashrc,所以当我在jenkins作业中运行时,我感到困惑.

我的jenkins机器上只有两个用户(jenkins和root),我正在以用户jenkins的身份运行git命令.用户jenkins的主目录是/ home/jenkins.我的jenkins工作以匿名用户身份运行.这可能是问题吗?

我有以下.ssh文件:

-rw-r--r--. 1 jenkins jenkins   89 Apr 25 11:18 config
-rw-r--r--. 1 jenkins jenkins  137 Apr 24 13:56 environment
-rw-------. 1 jenkins jenkins 1766 Apr 24 13:54 id_rsa
-rw-r--r--. 1 jenkins jenkins  425 Apr 24 13:54 id_rsa.pub
-rw-r--r--. 1 jenkins jenkins  806 Apr 25 12:06 known_hosts
drwx------. 2 jenkins jenkins 85 Apr 25 12:05 .ssh
Run Code Online (Sandbox Code Playgroud)

kka*_*lpl 15

我怀疑,你已经为你的用户添加了ssh密钥,而不是jenkins用户.

默认情况下,Jenkins由用户Jenkins运行,主目录是(默认情况下)/var/lib/jenkins.要检查我的假设,请以jenkins用户身份登录:

su jenkins
Run Code Online (Sandbox Code Playgroud)

并致电:

git -c core.askpass=true ls-remote -h git@bitbucket.org:myproject.git HEAD
Run Code Online (Sandbox Code Playgroud)

检查是否会返回错误.

您应该有/var/lib/jenkins/.ssh包含正确ssh密钥的目录.您需要id_rsa.pub在bitbucket上从该目录添加到您的帐户.

接下来在作业配置中设置:

Repository URL: git@bitbucket.org:ntti3/gtip.git
Credentials: - none - 
Run Code Online (Sandbox Code Playgroud)

描述的配置适用于我的Jenkins和bitbucket.

另请确保.ssh目录已设置适当的访问权限.Ssh不喜欢"太开放"的目录:

-rw-------  1 jenkins jenkins  407 Apr 14 14:14 authorized_keys
-rw-------  1 jenkins jenkins 1676 Nov 25 16:37 id_rsa
-rw-rw-r--  1 jenkins jenkins  400 Nov 25 16:38 id_rsa.pub
-rw-r--r--  1 jenkins jenkins 3096 Feb 11 12:11 known_hosts
drwx------   2 jenkins jenkins     4096 Apr 14 14:14 .ssh
Run Code Online (Sandbox Code Playgroud)