Permission denied (publickey)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Permission denied (publickey)相关的知识,希望对你有一定的参考价值。

参考技术A 在用Linux终端使用ssh root@server_ip来连接到远程服务器时,出现Permission denied (publickey).提示

分析登录过程,Permission denied(publickey)的问题可能如下
1、远程服务器没有添加公钥(无法认证)
2、远程服务器公钥文件夹权限错误( .ssh 和 .ssh/authorized_keys 需要保证只有用户自己有权限,否则验证无效)

如果服务器端根本就没有添加公钥是断然不可能通过认证的

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 文件夹所有权

通过其它方式登录到远程服务器,如果是阿里云则可以在网页中通过验证之后打开一个终端,然后进行如下操作

感谢评论区提醒,上文所有的~符号均为英文符号

mac使用ssh出现permission denied(publickey)

 

技术图片

 

 

看出错信息是权限太开放的问题,google了一下,修改权限,不只是需要修改 .pem 文件的权限,还需要修改.ssh目录和用户目录

chmod go-w ~/

chmod 700 ~/.ssh

chmod 600 ~/.ssh/ring.pem

再次使用命令

ssh  -i ~/.ssh/ring.pem IP地址

 

发现还是出错 

Permission denied (publickey).

 

无奈多方搜索尝试,发现了aws的排错文档,

里面有这么一段

  • 对于 Amazon Linux AMI,用户名称是 ec2-user

  • 对于 RHEL5 AMI,用户名称为 root 或 ec2-user

  • 对于 Ubuntu AMI,用户名称是 ubuntu

  • 对于 Fedora AMI,用户名称为 fedora 或 ec2-user

  • 对于 SUSE Linux,用户名称是 root 或 ec2-user

  • 另外,如果 ec2-user 和 root 无法使用,请与 AMI 供应商核实。

 

于是尝试使用各个用户名登录,最后使用

ssh  -i ~/.ssh/ring.pem ubuntu@IP地址

 

技术图片

 

 

成功登录!

问题解决~

 

以上是关于Permission denied (publickey)的主要内容,如果未能解决你的问题,请参考以下文章

git clone 报错 sign_and_send_pubkey: signing failed: agent refused operation Permission denied (public

mkdir(): Permission denied

mac使用ssh出现permission denied(publickey)

permission 和 user-permission的区别

uses-permission和permission区别及使用

android:uses-permission 和 uses-permission 有啥区别?