在CentOS服务器上配置的Jenkins上,我尝试使用用户名和密码连接到另一台服务器上的git存储库。不幸的是我收到了以下错误:
Failed to connect to repository :
Command "/usr/bin/git -c core.askpass=true ls-remote -h ssh://root@[ip addres]:2020/opt/gitrepo/enpapp.git HEAD"
returned status code 128:
stdout:
stderr: Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
fatal: Could not read from remote repository.*
Please make sure you have the correct access rights and the repository exists.
我可以使用Putty连接到git服务器 我也能够使用Netbeans或命令行克隆git存储库。
.ssh
文件夹的权限为700,known_hosts
文件的权限为644
答案 0 :(得分:1)
(命令“/ usr / bin / git -c core.askpass = true ls-remote -h ssh:// root @ [ip addres]:2020 / opt / gitrepo / enpapp.git HEAD“)
从日志中可以看出,Jenkins正在尝试使用ssh-keys连接到服务器
您可以使用ssh-keygen生成正确的密钥,并在Jenkins Credentials中添加私钥,并在服务器帐户中添加公钥。
如果您可以分享jenkins工作的屏幕截图,了解它的配置方式,那就更好了。 Jenkins中的Git插件不支持ssh上的用户名和密码 https://issues.jenkins-ci.org/browse/JENKINS-22909
答案 1 :(得分:0)
我有同样的问题。就我而言,我在詹金斯(Jenkins)中错误地粘贴了私钥。我正在删除私钥的第一部分和最后一部分
-----BEGIN OPENSSH PRIVATE KEY----- &-----END OPENSSH PRIVATE KEY-----
因此,请确保在Jenkins上创建SSH凭据时复制了私钥的所有内容。