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

SshAmazon Ec2Ubuntu 12.04

Ssh Problem Overview


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

Ssh Solutions


Solution 1 - Ssh

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

Solution 2 - Ssh

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

Solution 3 - Ssh

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

Solution 4 - Ssh

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 [email protected]

Solution 5 - Ssh

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

Solution 6 - Ssh

chmod 600 ~/.ssh/public_key_file solved for me

Solution 7 - Ssh

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.

Solution 8 - Ssh

There are multiple reasons to occurring this error. 1 you are trying to access from whatever path which is not match 2 either you do not have permission to do access 3 if you do not have access to that particular file you can try to change the mode of permission

like the above solution

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

even if not then you can co-ordinate with the network or your cloud team whoever manage your cloud server

Solution 9 - Ssh

This is weird, but in my case I was copying the command from a slack message and that repeatedly caused this error, even though I met all the above requirements. Typing the whole command without copying anything from clipboard worked for me. Posting this here and I hope this helps someone one day.

Solution 10 - Ssh

When connecting from a windows environment what did the trick for me was putting the path in quotation marks " as follows:

ssh -i "C:\Users\XXXX\Desktop\XXXX\testing_amazon_linux.pem" ubuntu@XXXX.amazonaws.com

I replaced identifiable things with XXXX but let the rest in place to improve example clarity.

Solution 11 - Ssh

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

Solution 12 - Ssh

I got here while solving same or similar problem. After trying a few things this works for me eventually. I am on MacBook Pro and trying to connect to Ec2 Amazon Linux 2 using VSCode Remote SSH.

I have to update this file

> /Users/MrRobot/.ssh/config

There is a config in the file like below.

> IdentityFile xx.pem

I have to update this to full path wherever your id_rsa or pem file is.

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

Solution 13 - Ssh

my solution is move it to the path which is all the english chars

(i am a chinese, and use the chinese windows, when i run the command from the path which contains the chinese chars, it will return "Warning: Identity file debao-visa.pem not accessible: No such file or directory.")

Solution 14 - Ssh

A similar issue occurred and the problem was that the file extension was hidden.

So the real filename was skeniver.pem.txt instead of skeniver.pem

A simple way to determine this is to press tab while typing the filename. So type part of the filename like skenive then hit tab, it should print the rest of the file in the terminal and you should see if it has any part after .pem like .pem.txt.

Try

ssh -i /Users/Skeniver/Keepass/skeniver.pem.txt [email protected]

or remove the .txt or any other extension from the name.

Solution 15 - Ssh

You can try a different idea, here's what I did. I couldn't upload to a folder, so I put the uploaded folder to “ [email protected]:/tmp ” ,then I uploaded successfully and cp the file on the server afterwards.

Solution 16 - Ssh

Try using

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

instead of

ssh -i **/**Users/Skeniver/Keepass/skeniver.pem [email protected]

Solution 17 - Ssh

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

ssh -i (identity_file) username@hostname

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionskeniverView Question on Stackoverflow
Solution 1 - Sshuser2821540View Answer on Stackoverflow
Solution 2 - SshAmitView Answer on Stackoverflow
Solution 3 - SshChris ScottView Answer on Stackoverflow
Solution 4 - SshTadele AyelegnView Answer on Stackoverflow
Solution 5 - Sshanil sidhuView Answer on Stackoverflow
Solution 6 - SshCanerView Answer on Stackoverflow
Solution 7 - SshChris HalcrowView Answer on Stackoverflow
Solution 8 - Sshumang naikView Answer on Stackoverflow
Solution 9 - SshkohlView Answer on Stackoverflow
Solution 10 - SshSam FedView Answer on Stackoverflow
Solution 11 - SshAnand DevarajanView Answer on Stackoverflow
Solution 12 - SshLaurenceView Answer on Stackoverflow
Solution 13 - SshybdtView Answer on Stackoverflow
Solution 14 - SshshmuelsView Answer on Stackoverflow
Solution 15 - SshKayle LiaoView Answer on Stackoverflow
Solution 16 - SshKrishnanView Answer on Stackoverflow
Solution 17 - SshBourneView Answer on Stackoverflow