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)