I'm trying to copy a file from my local host to my Amazon EC2 instance using SCP and receiving the error:

Warning: Identity file blocks_key.pem not accessible: No such file or directory. Permission denied (publickey). lost connection

The command that prompts this error is:

scp -i ~/Desktop/Blocks/blocks_key.pem ~/Desktop/Blocks/code/www/uploadtest.html ubuntu@ip.address:/var/www

I was able to SSH using the same -i ~/Desktop/Blocks/blocks_key.pem so I'm unclear why this isn't working correctly. Any insight would be much appreciated!

Debugging info:

OpenSSH_5.3p1 Debian-3ubuntu7, OpenSSL 0.9.8k 25 Mar 2009
Warning: Identity file /Desktop/Blocks/blocks_key.pem not accessible: No such file or directory.
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to [] port 22.
debug1: Connection established.
debug1: identity file /home/ubuntu/.ssh/identity type -1
debug1: identity file /home/ubuntu/.ssh/id_rsa type -1
debug1: identity file /home/ubuntu/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3p1 Debian-3ubuntu7
debug1: match: OpenSSH_5.3p1 Debian-3ubuntu7 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu7
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 '' is known and matches the RSA host key.
debug1: Found key in /home/ubuntu/.ssh/known_hosts:1
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_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/ubuntu/.ssh/identity
debug1: Trying private key: /home/ubuntu/.ssh/id_rsa
debug1: Trying private key: /home/ubuntu/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).
lost connection


  • Maybe use the -v option with scp and post the output? – Zoredache Jul 25 '11 at 19:25
  • @Zoredache - added debugging info thanks for the help! – John Jul 25 '11 at 19:35

Perhaps you've found a bug?

Another way of doing the same thing (wonder if this works for you?):

scp -oIdentityFile=/Users/emmie/Desktop/Blocks/blocks_key.pem ~/Desktop/Blocks/code/www/uploadtest.html ubuntu@ip.address:/var/www

Also, it might help (just curious) if you post the output of:

stat /Users/emmie/Desktop/Blocks/blocks_key.pem

  • Hmm.. that alternative SCP didn't work but I think your idea about stat is interesting. here is the output: stat: cannot stat `/home/ubuntu/Users/emmie/Desktop/Blocks/blocks_key.pem': No such file or directory – John Jul 25 '11 at 20:09
  • It looks like it's looking for the target file on the server when in fact I want it to be looking for the target on my localhost. How do I correct that? – John Jul 25 '11 at 20:10
  • 1
    I figured this out, it was a careless error on my part as I was already SSH'd into the server. Thanks for all the help though! – John Jul 25 '11 at 20:20

From your verbose output see this message.

Warning: Identity file /Desktop/Blocks/blocks_key.pem not accessible: No such file or directory.

Instead of using ~/, try providing the full path in your command line. Perhaps you are using a shell that doesn't support the expansion of ~ to your home directory.

Not sure if that is your problem, but you will give a path to scp that will actually allow it to find the key on the filesystem, in order to use it.

  • Hmm... I tried the full path /Users/emmie/Desktop/Blocks/blocks_key.pem and that gave the same warning that it wasn't accessible and no such file or directory exists. – John Jul 25 '11 at 19:42
  • I'm confused because the ~/Desktop/Blocks/blocks_key.pem works for SSH – John Jul 25 '11 at 19:42

If you are using Amazon Web service all you need to do is to reconnect the ec2 by going back to putty and save the IP and the path, and load the ip. The terminal will open and let you connect to the ec2. it worked for me.

good luck


Make sure the permissions on /var/www are set correctly (chmod 777 /var/www should work)

  • 4
    777 is pretty much never correct. – Michael Hampton Aug 6 '13 at 17:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.