ssh或者git 登 陆的时候遇到Permission denied (publickey,gssapi-keyex,gssapi-with-mic)错误

其实遇到这个错误心里很明就是没有权限,也不想细说这个东西只说一下我没有注意到的细节。


因为服务器上搭了个git私有仓库,以前一直是用密码的,但是我的服务器管理员使用的是密钥登陆,今天没事儿感觉不安全我就把密码登陆给关掉了,然后我就给 git配了个密钥登陆。

具体的过程就不说了,首先肯定自己的密钥对是绝对没有问题的,配置文件也全部OK。

同时 git/.ssh是700权限  git/.ssh/authorized_keys 也是600权限,并且私钥都是添加了的。

但是连接的时候就是提示

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

fatal: Could not read from remote repository.

就是提示这个错误,当时很无语没有找到哪里出了问题。一时找不到问题就没有理它,还是把密码登陆打开,先用着。

晚上又登上服务器看了一眼。发现git目录下的.ssh的所有者不是git用户,晃然大悟。

解决办法就是 .ssh的所有者必须要是git用户(也就是家目录下的这个.ssh目录的所有者必须与家目录是同一人用户)才行。否则会一直报无权限。

同时注意一下有没有IP限制,如果开启的Ip限制那也一定要记得给 Ip授权。

还要注意一下你所访问的目录是否有权限,特别是git的路径。

因为当时我为图一时方便我就直接使用 root 用户创建的.ssh目录所以这个.ssh的所有者一直是root。

Tags linux

留言(0)

评论