赞
踩
在用Linux终端使用ssh root@server_ip来连接到远程服务器时,出现Permission denied (publickey).提示
~/.ssh/id_rsa
)和公钥(~/.ssh/id_rsa.pub
)~/.ssh/id_rsa.pub
)应该保存在远程服务端的已认证的秘钥文件内(~/.ssh/authorized_keys
)~/.ssh/id_rsa
)加密发送给服务端~/.ssh/id_rsa.pub
)对私钥加密后的字符串进行解密分析登录过程,Permission denied(publickey)的问题可能如下
1、远程服务器没有添加公钥(无法认证)
2、远程服务器公钥文件夹权限错误(.ssh
和.ssh/authorized_keys
需要保证只有用户自己有权限,否则验证无效)
如果服务器端根本就没有添加公钥是断然不可能通过认证的
Solution
1、客户端已经有秘钥对:通过其它方式登录到远程服务器,查看~./ssh/authorized_keys
文件中是否添加了公钥,若没有可直接将公钥内容拷贝到该文件末尾
2、客户端没有秘钥对:通过ssh-keygen
命令生成秘钥对,默认文件夹是~/.ssh
文件夹,将.ssh
文件夹内id_rsa.pub
的内容拷贝到服务器上的~./ssh/authorized_keys
文件末尾(若服务器上~./ssh/authorized_keys
不存在则也可以使用ssh-keygen
来生成文件结构)
远程服务器~/.ssh
文件夹及其文件权限不对,包括
1、~./ssh/authorized_keys
文件权限
2、~/.ssh
文件夹权限
3、~/.ssh
文件夹所有权
Solution
通过其它方式登录到远程服务器,如果是阿里云则可以在网页中通过验证之后打开一个终端,然后进行如下操作
- $ chown -R your_user:your_group ~/.ssh
- //我用root登录,your_user是root
.ssh
文件夹权限$ chmod 700 ~/.ssh
.ssh/authorized_keys
文件权限$ chmod 600 ~/.ssh/authorized_keys
感谢评论区提醒,上文所有的~符号均为英文符号
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。