一、連接GIT倉庫報錯
Failed to connect to repository : Command "git ls-remote -h git@192.168.5.71:/home/git/www.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.
二、問題原因
我是通過yum安裝的Jenkins,安裝過程中創建了jenkins用戶,並作為service以這個用戶來運行。所以無論是root還是當前用戶的ssh key都是不生效的。
# ps aux | grep jenkins jenkins 2528 13.4 15.2 3665292 591388 ? Ssl Nov18 155:31 /etc/alternatives/java -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
三、解決方法
最簡單的方法是把服務用戶由jenkins修改為root
# sed -n '29p' /etc/sysconfig/jenkins JENKINS_USER="root" # systemctl restart jenkins.service # ps aux | grep jenkins root 19132 169 5.8 3563124 225760 ? Ssl 09:59 0:06 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
另一種就是為jenkins這個用戶再生成ssh key,然后設置到git系統