使用SSH密钥对登录远程服务器,一直登录不上,提示如下错误:

[root@backup .ssh]# ssh -p 6022 inboc@10.11.1.15
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/root/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/root/.ssh/id_rsa": bad permissions
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

在此报错中提示 文件/root/.ssh/id_rsa 的权限0644过大:

[root@backup .ssh]# ll
total 16
-rw------- 1 root root  400 Jan  4 11:13 authorized_keys
-rw-r--r-- 1 root root 1679 Jan  4 11:14 id_rsa
-rw-r--r-- 1 root root  400 Jan  4 11:14 id_rsa.pub
-rw-r--r-- 1 root root 1786 Jan  4 17:26 known_hosts

id_rsa文件的默认权限是600,然后将其修改为600权限后,再次使用密钥对登录远程服务器,成功登录。

[root@backup .ssh]# chmod 600 id_rsa
[root@backup .ssh]# ll
total 16
-rw------- 1 root root  400 Jan  4 11:13 authorized_keys
-rw------- 1 root root 1679 Jan  4 11:14 id_rsa
-rw-r--r-- 1 root root  400 Jan  4 11:14 id_rsa.pub
-rw-r--r-- 1 root root 1786 Jan  4 17:26 known_hosts

造成这个问题的原因是,在Linux服务器上生成密钥对后,将密钥对保存在本地的Windows服务器上,然后连接其他服务器的时候,而是直接本地Windows上的文件上传到.ssh目录下,从而导致文件权限的不正确。

这里在补充下.ssh目录的权限,权限值为700:

[root@backup ~]# ll -d .ssh/
drwx------. 2 root root 80 Jan  4 11:33 .ssh/
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐