无法ssh到AWS EC2:身份文件无法访问

时间:2013-06-11 06:45:45

标签: ssh amazon-ec2 ubuntu-12.04

我无法ssh到我的EC2服务器并收到错误:

ssh -i /Users/Skeniver/Keepass/skeniver.pem ubuntu@xx.xxx.xx.xxx

Identity file /Users/Skeniver/Keepass/skeniver.pem not accessible: No such file or directory

该文件肯定在目录中,我已将目录chmod为755,文件为600:

drwxr-xr-x  14 Skeniver  staff    476 28 Nov  2012 Keepass
-rw-------  1 Skeniver  staff    1696  5 Oct  2012 skeniverkey.pem

我很确定这是一个权限问题,但无法弄清楚为什么......

以下是使用-v的ssh命令的输出,如果有任何用处:

Warning: Identity file /Users/Skeniver/Keepass/skeniver.pem not accessible: No such file or directory.
OpenSSH_5.2p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to xx.xxx.xx.xxx [xx.xxx.xx.xxx] port 22.
debug1: Connection established.
debug1: identity file /Users/Skeniver/.ssh/identity type -1
debug1: identity file /Users/Skeniver/.ssh/id_rsa type 1
debug1: identity file /Users/Skeniver/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1.1
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1.1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.2
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'xx.xxx.xx.xxx' is known and matches the RSA host key.
debug1: Found key in /Users/Skeniver/.ssh/known_hosts:8
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /Users/Skeniver/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: Trying private key: /Users/Skeniver/.ssh/identity
debug1: Trying private key: /Users/Skeniver/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).

14 个答案:

答案 0 :(得分:17)

您需要身份文件才能登录该框。使用命令:

ssh -i (identity_file) username@hostname"

这对我有用。只写文件名(没有任何斜杠),不像Amazon EC2教程要求你输入:

ssh -i /path/key_pair.pem ec2-user@public_dns_name

将身份文件放在主页上的.ssh(隐藏)文件夹后,它对我有用。要在家中查看隐藏文件夹,请使用ctrl+h

答案 1 :(得分:8)

我有类似的问题,发现命令中有隐藏的字符,粘贴到纯文本编辑器并复制回来帮助了我。

答案 2 :(得分:4)

我遇到了同样的问题。将身份文件存储在~/.ssh目录中,并在cd ~/.ssh工作之前运行ssh -i (identity_file) username@hostname。尝试从~/.ssh目录外部运行ssh命令时,我只遇到了这个问题。希望这有帮助

答案 3 :(得分:1)

仅适用于您的情况

只需执行以下命令即可更改权限

sudo chmod 400 /Users/Skeniver/Keepass/skeniver.pem

然后执行将您连接到EC2的命令

ssh -i /Users/Skeniver/Keepass/skeniver.pem ubuntu@xx.xxx.xx.xxx

答案 4 :(得分:1)

我有同样的问题,我发现文件路径的问题。 右键单击你的key_pair.pem(相同的文件)去属性并复制,现在你的评论就像

ssh -i /path/skeniver.pem user@your_public_ip

例如在我的情况下命令如

ssh -i /home/anil/.ssh/webKey.pem ec2-user@ec2-45-349-50-38.us-west-2.compute.amazonaws.com

答案 5 :(得分:1)

这很奇怪,但就我而言,我是从一条松弛消息中复制命令的,即使我满足了上述所有要求,但它反复导致了此错误。键入整个命令而不复制剪贴板中的内容对我来说很有效。将此张贴在这里,希望对某人有帮助。

答案 6 :(得分:0)

您需要身份文件才能登录该框。 使用命令

ssh -i (identity_file) username@hostname

答案 7 :(得分:0)

尝试使用

ssh -i Users/Skeniver/Keepass/skeniver.pem ubuntu@xx.xxx.xx.xxx

而不是

ssh -i **/**Users/Skeniver/Keepass/skeniver.pem ubuntu@xx.xxx.xx.xxx

答案 8 :(得分:0)

chmod 600 ~/.ssh/public_key_file为我解决了

答案 9 :(得分:0)

从.ssh目录即/Users//.ssh运行命令,然后执行命令 ssh -v -i @

在多次尝试失败后,这对我有用。

注意:请确保.pem文件具有必要的权限 chmod 400 <.pem文件>在执行命令之前

答案 10 :(得分:0)

好像您输入了错误的文件名。您在命令中指定了文件名skeniver.pem,但看起来文件名实际上是skeniverkey.pem

答案 11 :(得分:0)

我在解决相同或相似问题时来到这里。在尝试了几件事之后,这最终对我有用。我在MacBook Pro上,尝试使用VSCode Remote SSH连接到Ec2 Amazon Linux 2。

我必须更新此文件

/Users/MrRobot/.ssh/config

文件如下所示。

IdentityFile xx.pem

无论您的id_rsa或pem文件在哪里,我都必须将其更新为完整路径。

IdentityFile /Users/MrRobot/.ssh/xx.pem

答案 12 :(得分:0)

我的解决方案是将其移动到所有英文字符所在的路径

(我是中文,并且使用中文窗口,当我从包含中文字符的路径运行命令时,它将返回“警告:身份文件debao-visa.pem无法访问:没有此类文件或目录。”

答案 13 :(得分:0)

发生此错误有多种原因。 1您正在尝试从不匹配的任何路径访问 2您无权访问 3如果您无权访问该特定文件,则可以尝试更改权限模式

类似于上述解决方案

sudo chmod 400 /Users/Skeniver/Keepass/skeniver.pem

即使不是这样,您也可以与管理您的云服务器的网络或云团队进行协调