- 前言:
不管是服务器的git 或者 是服务器的gitlab,如果配置好git密钥之后,理应不需要输入密码的。
1、git 问题:设置 git 密钥
后,扔提示需要密码
shileideMacBook-Pro:test stone$ git pull
git@git.xxx.cn's password:
……
解决:
(1)基本来看,检查本地私钥是否与服务器公钥一致:git默认加载~/.ssh/id_rsa
文件,如要修改,运行 ssh-add [私钥路径]
; 或者自定义密钥文件路径( => 配置在 ~/.ssh/config
)
(2)服务器仓库的.ssh文件夹与里面的文件权限错误(可能有人手贱,改成了777),还原如下权限:
chmod 700 ~/.ssh
chmod 400 ~/.ssh/rsa_id
chmod 644 ~/.ssh/rsa_id.pub
2、项目托管在 gitlab
上, 用本地git与服务器上的gitlab对接时,出现 需要密码
:
(1) 排查:服务器上查看安全日志 tac /var/log/secure
,
Apr 26 14:14:07 xxx sshd[8953]: pam_unix(sshd:session): session closed for user root
Apr 26 14:15:32 xxx sshd[21566]: Authentication refused: bad ownership or modes for directory /var/opt/gitlab
Apr 26 14:15:34 xxx sshd[21566]: Connection closed by xxx port 36963 [preauth]
(2)解决:根据错误了解到,/var/opt/gitlab
的目录权限错误,一查,原来是 777 的权限,改成755就好了
chmod -R 755 /var/opt/gitlab
记得最后重启一下gitlab, gitlab-ctl restart
,以防502的错误。