Can't ssh to AWS EC2: Identity file not accessible

僤鯓⒐⒋嵵緔 提交于 2019-12-20 10:17:05

问题


I'm unable to ssh to my EC2 server and am getting the error:

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

The file is definitely in the directory and I've chmod'd the directory to 755 and the file to 600:

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

I'm pretty sure it's a permissions problem, but can't figure out why...

Here is the output of the ssh command using -v, in case it's of any use:

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).

回答1:


You need the identity file to login to the box. Use the command:

ssh -i (identity_file) username@hostname"

This worked for me. Write just the filename (without any slashes), unlike Amazon EC2 tutorial which asks you to enter:

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

It worked for me after putting the identity file in the .ssh (hidden) folder on home. To view hidden folders on home, use ctrl+h




回答2:


I had similar issue and found that there was hidden char in command, pasting to plain text editor and copy back helped me.




回答3:


I was having this same issue. Storing the identity file in my ~/.ssh directory and running cd ~/.ssh before ssh -i (identity_file) username@hostname worked. I only ran into the issue when trying to run the ssh command from outside the ~/.ssh directory. Hopefully that helps




回答4:


For your case just

just execute the following command to change permission

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

and then execute the command that will connect you to EC2

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




回答5:


I had the same problem and i found that the issue with the file path. Right click on the your key_pair.pem (identical file) go the properties and copy and now your comment is like

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

for example in my case command like

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



回答6:


chmod 600 ~/.ssh/public_key_file solved for me




回答7:


run the command from .ssh directory i.e/Users//.ssh and then execute the command ssh -v -i @

this worked for me after many failed attempt.

note: please make sure .pem file has necessary permission chmod 400 <.pem file> before executing the command




回答8:


Looks like you typed the wrong filename. You're specifying the filename skeniver.pem in your command, but it looks like your filename is actually skeniverkey.pem.




回答9:


You need the identity file to login to the box. Use the command

ssh -i (identity_file) username@hostname



回答10:


Try using

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

instead of

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


来源:https://stackoverflow.com/questions/17038015/cant-ssh-to-aws-ec2-identity-file-not-accessible

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!