简体   繁体   中英

permission denied public key while copying folder/file from local machine to AWS ec2 instance with scp command in putty

i have an EC2 instance running ubuntu and i am connected to this instance using putty. i am trying to upload some files to this instance but getting permission denied public key error again and again. below are the commands i tried but received same error.

    login as: ubuntu
    Authenticating with public key "imported-openssh-key"
    Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-44-generic x86_64)

    * Documentation:  https://help.ubuntu.com/

    System information as of Wed Mar 25 05:21:29 UTC 2015

    System load:  0.0                Processes:           147
    Usage of /:   11.8% of 15.61GB   Users logged in:     1
    Memory usage: 47%                IP address for eth0: 172.31.24.22
    Swap usage:   0%
    ubuntu@ip-172-31-24-22:/var/www/html$ scp -r     \xampp\htdocs\bucketsorter\index.php ubuntu@ip-172-31-24-22:home/ubuntu/var
    Permission denied (publickey).
    lost connection
    ubuntu@ip-172-31-24-22:/var/www/html$ scp -r -v \xampp\htdocs\bucketsorter\index.php ubuntu@ip-172-31-24-22:home/ubuntu/var
    Executing: program /usr/bin/ssh host ip-172-31-24-22, user ubuntu,   command scp -v -r -t home/ubuntu/var
    OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
    debug1: Reading configuration data /etc/ssh/ssh_config
    debug1: /etc/ssh/ssh_config line 19: Applying options for *
    debug1: Connecting to ip-172-31-24-22 [172.31.24.22] port 22.
    debug1: Connection established.
    debug1: identity file /home/ubuntu/.ssh/id_rsa type -1
    debug1: identity file /home/ubuntu/.ssh/id_rsa-cert type -1
    debug1: identity file /home/ubuntu/.ssh/id_dsa type -1
    debug1: identity file /home/ubuntu/.ssh/id_dsa-cert type -1
    debug1: identity file /home/ubuntu/.ssh/id_ecdsa type -1
    debug1: identity file /home/ubuntu/.ssh/id_ecdsa-cert type -1
    debug1: identity file /home/ubuntu/.ssh/id_ed25519 type -1
    debug1: identity file /home/ubuntu/.ssh/id_ed25519-cert type -1
    debug1: Enabling compatibility mode for protocol 2.0
    debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2
    debug1: Remote protocol version 2.0, remote software version     OpenSSH_6.6.1p1 Ubuntu-2ubuntu2
    debug1: match: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2 pat OpenSSH_6.6.1* compat  0x04000000
    debug1: SSH2_MSG_KEXINIT sent
    debug1: SSH2_MSG_KEXINIT received
    debug1: kex: server->client aes128-ctr hmac-md5-etm@openssh.com none
    debug1: kex: client->server aes128-ctr hmac-md5-etm@openssh.com none
    debug1: sending SSH2_MSG_KEX_ECDH_INIT
    debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
    debug1: Server host key: ECDSA     e9:2c:36:dd:be:72:1e:8a:cd:4d:1d:71:be:38:51:20
    debug1: Host 'ip-172-31-24-22' is known and matches the ECDSA host key.
    debug1: Found key in /home/ubuntu/.ssh/known_hosts:2
    debug1: ssh_ecdsa_verify: signature correct
    debug1: SSH2_MSG_NEWKEYS sent
    debug1: expecting SSH2_MSG_NEWKEYS
    debug1: SSH2_MSG_NEWKEYS received
    debug1: Roaming not allowed by server
    debug1: SSH2_MSG_SERVICE_REQUEST sent
    debug1: SSH2_MSG_SERVICE_ACCEPT received
    debug1: Authentications that can continue: publickey
    debug1: Next authentication method: publickey
    debug1: Trying private key: /home/ubuntu/.ssh/id_rsa
    debug1: Trying private key: /home/ubuntu/.ssh/id_dsa
    debug1: Trying private key: /home/ubuntu/.ssh/id_ecdsa
    debug1: Trying private key: /home/ubuntu/.ssh/id_ed25519
    debug1: No more authentication methods to try.
    Permission denied (publickey).
    lost connection
    ubuntu@ip-172-31-24-22:/var/www/html$ scp -r -v -i \Users\Rohan\Desktop\fall2014 courses\research\bucketsort-aws.pem \xampp\htdocs\bucketsorter\index.php ubuntu@ip-172-31-24-22:home/ubuntu/var
    Executing: program /usr/bin/ssh host ip-172-31-24-22, user ubuntu,   command scp -v -r -d -t home/ubuntu/var
    Warning: Identity file UsersRohanDesktopfall2014 not accessible: No such file or directory.
    OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
    debug1: Reading configuration data /etc/ssh/ssh_config
    debug1: /etc/ssh/ssh_config line 19: Applying options for *
    debug1: Connecting to ip-172-31-24-22 [172.31.24.22] port 22.
    debug1: Connection established.
    debug1: identity file /home/ubuntu/.ssh/id_rsa type -1
    debug1: identity file /home/ubuntu/.ssh/id_rsa-cert type -1
    debug1: identity file /home/ubuntu/.ssh/id_dsa type -1
    debug1: identity file /home/ubuntu/.ssh/id_dsa-cert type -1
    debug1: identity file /home/ubuntu/.ssh/id_ecdsa type -1
    debug1: identity file /home/ubuntu/.ssh/id_ecdsa-cert type -1
    debug1: identity file /home/ubuntu/.ssh/id_ed25519 type -1
    debug1: identity file /home/ubuntu/.ssh/id_ed25519-cert type -1
    debug1: Enabling compatibility mode for protocol 2.0
    debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2
    debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1p1 Ubuntu-2ubuntu2
    debug1: match: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2 pat OpenSSH_6.6.1* compat 0x04000000
    debug1: SSH2_MSG_KEXINIT sent
    debug1: SSH2_MSG_KEXINIT received
    debug1: kex: server->client aes128-ctr hmac-md5-etm@openssh.com none
    debug1: kex: client->server aes128-ctr hmac-md5-etm@openssh.com none
    debug1: sending SSH2_MSG_KEX_ECDH_INIT
    debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
    debug1: Server host key: ECDSA e9:2c:36:dd:be:72:1e:8a:cd:4d:1d:71:be:38:51:20
    debug1: Host 'ip-172-31-24-22' is known and matches the ECDSA host key.
    debug1: Found key in /home/ubuntu/.ssh/known_hosts:2
    debug1: ssh_ecdsa_verify: signature correct
    debug1: SSH2_MSG_NEWKEYS sent
    debug1: expecting SSH2_MSG_NEWKEYS
    debug1: SSH2_MSG_NEWKEYS received
    debug1: Roaming not allowed by server
    debug1: SSH2_MSG_SERVICE_REQUEST sent
    debug1: SSH2_MSG_SERVICE_ACCEPT received
    debug1: Authentications that can continue: publickey
    debug1: Next authentication method: publickey
    debug1: Trying private key: /home/ubuntu/.ssh/id_rsa
    debug1: Trying private key: /home/ubuntu/.ssh/id_dsa
    debug1: Trying private key: /home/ubuntu/.ssh/id_ecdsa
    debug1: Trying private key: /home/ubuntu/.ssh/id_ed25519
    debug1: No more authentication methods to try.
    Permission denied (publickey).
    lost connection
    ubuntu@ip-172-31-24-22:/var/www/html$

I have tried with root as a user as well. I have been trying to figure it out since 6 hours and now really frustrated. i am newbie in linux. please help me solve this. thanks in advance

In the sample terminal output, your first two scp attempts never even tried to authenticate. The remote system only accepts public key authentication (not passwords), and ssh didn't have any public keys to authenticate with.

In your third scp attempt, there is this:

$ scp -r -v -i \Users\Rohan\Desktop\fall2014 courses\research\bucketsort-aws.pem \xampp\htdocs\bucketsorter\index.php ubuntu@ip-172-31-24-22:home/ubuntu/var
Executing: [...]
Warning: Identity file UsersRohanDesktopfall2014 not accessible: No such file or directory.

You told it to use the key file "\\Users\\Rohan\\Desktop\\fall2014 courses\\research\\bucketsort-aws.pem" without quotes. Scp ended up looking for a key file named "UsersRohanDesktopfall2014". It couldn't find this key, so once again it couldn't authenticate.

First of all, the name of your keyfile contains a space, so it must be surrounded with quotes to be seen as a single command-line parameter. Second, it looks like backslashes on the command line are being mangled, so try using forward slashes instead:

$ scp -r -v -i "/Users/.../fall2014 courses/research/bucketsort-aws.pem" /xampp/.../index.php ubuntu@ip-172-31-24-22:home/ubuntu/var

This is on Windows? If scp still complains about not being able to find the key file, add the drive specifier:

$ scp -r -v -i "C:/Users/.../fall2014 courses/research/bucketsort-aws.pem" /xampp/.../index.php ubuntu@ip-172-31-24-22:home/ubuntu/var
$ scp -r -v -i \Users\Rohan\Desktop\fall2014 courses\research\bucketsort-aws.pem \xampp\htdocs\bucketsorter\index.php ubuntu@ip-172-31-24-22:home/ubuntu/var

Why are you using Backslash in above command? what exactly are you doing?

Also, if you want to copy files from Local windows workstation to remote EC2 Linux box, Use something like FileZilla, WinSCP OR BitWise.

PuTTy Can NOT transfer files.

Besides, ubuntu@ip-172-31-24-22:home/ubuntu/var should be ubuntu@ip-172-31-24-22:/home/ubuntu/var (Notice a / before home )

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM