前言
利用Linux的SSH RSA秘钥登录其他用户时,有时会报这个错误。
Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
情景
假设:现在机器A和机器B,机器A上有用户C,机器B上有用户D。
目标:使用机器A的用户C免密登录到机器B的用户D。
正常操作流程
-
我们需要建立用户C的RSA公私钥
ssh-keygen -t rsa
-
将刚生成的公钥放到用户D的~/.ssh/authorized_keys,可使用ssh-copy-id命令来做,也可以直接复制此公钥将其手动添加到用户D的~/.ssh/authorized_keys文件下。
-
使用ssh -l user_D ip_B,做第一次连接尝试。
这时,就可能出现此错误。
Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
原因
用户D的~/.ssh权限太大导致ssh判断不安全不给连接。
查阅资料后,发现/.ssh需要700权限,/.ssh/authorized_keys需要600权限。
解决
登录机器B,使用用户D,分别修改/.ssh和/.ssh/authorized_keys的权限为700和600.
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
About me: 资深大猪蹄子