Can't ssh to AWS EC2: Identity file not accessible [closed]
Asked Answered
C

17

54

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

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

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).
Controversy answered 11/6, 2013 at 6:45 Comment(1)
Try swapping the order of the parts, i.e. ssh [email protected] -i identity_file.pemAchlamydeous
B
31

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

Bryan answered 26/9, 2013 at 23:47 Comment(0)
I
22

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

Islam answered 18/6, 2017 at 5:20 Comment(0)
S
5

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

Sandra answered 20/1, 2017 at 21:44 Comment(2)
Depending on system, in Linux you could do /home/(user)/.ssh/(identify_file) and run it regardless of current working path.Apricot
@Apricot so when you say in "Linux" how broad are restricted is your scope? like do you mean in 'nix systems? I ask, because I just had this same issue on os x. I tried sshing with a pem like i 'almost' normally do... however... I wasnt in my home directory. As soon as I switched to my home directory and edited my command to be ssh -i '.ssh/blah.pem' .. it worked as usual. I could have sworn i have done this before... I know that I have used the pem file in all sorts of directories never been a problem. So, why does /home/user/.ssh/blah.pem no work but being in the user directory does?Kamerun
R
5

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]

Ribaudo answered 16/5, 2018 at 3:54 Comment(0)
I
3

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 [email protected]
Intrinsic answered 13/6, 2018 at 18:53 Comment(0)
R
1

chmod 600 ~/.ssh/public_key_file solved for me

Resilient answered 10/4, 2019 at 9:11 Comment(0)
A
1

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.

Abisia answered 26/11, 2019 at 3:21 Comment(0)
L
1

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

Litter answered 25/6, 2020 at 2:51 Comment(0)
M
1

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.

Magenmagena answered 14/12, 2020 at 19:47 Comment(1)
I forgot to add .pem at the end while trying to connect to the remote EC2 machine. Please check this carefully.Sanalda
E
1

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

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

Extortion answered 16/11, 2021 at 19:20 Comment(0)
E
0

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

Exclaim answered 30/7, 2019 at 14:13 Comment(0)
W
0

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

Wroth answered 9/3, 2020 at 23:57 Comment(0)
B
0

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

Beauregard answered 16/5, 2020 at 6:20 Comment(0)
D
0

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.

Dimity answered 29/3, 2022 at 17:42 Comment(0)
D
0

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.

Dalmatian answered 13/4, 2022 at 10:17 Comment(0)
F
-1

Try using

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

instead of

ssh -i **/**Users/Skeniver/Keepass/skeniver.pem [email protected]
Filiano answered 4/2, 2016 at 2:55 Comment(0)
H
-2

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

ssh -i (identity_file) username@hostname
Highline answered 11/6, 2013 at 6:47 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.