在putty中使用scp命令将文件夹/文件从本地计算机复制到AWS ec2实例时,权限被拒绝公钥

时间:2015-03-25 07:12:49

标签: linux ssh amazon-ec2 scp permission-denied

我有一个运行ubuntu的EC2实例,我使用putty连接到这个实例。我正在尝试将一些文件上传到此实例,但一次又一次获得权限被拒绝公钥错误。以下是我尝试但收到相同错误的命令。

    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$

我也尝试使用root作为用户。我一直试图弄清楚它自6个小时以来现在真的很沮丧。我是linux的新手。请帮我解决这个问题。提前谢谢

2 个答案:

答案 0 :(得分:0)

$ 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

为什么在上面的命令中使用反斜杠?你究竟在做什么?

此外,如果要将文件从本地Windows工作站复制到远程EC2 Linux盒,请使用FileZilla,WinSCP或BitWise之类的东西。

PuTTy无法传输文件。

此外,ubuntu@ip-172-31-24-22:home/ubuntu/var应为ubuntu@ip-172-31-24-22:/home/ubuntu/var(在home之前注意 /

答案 1 :(得分:0)

在示例终端输出中,您的前两次scp尝试甚至都没有尝试进行身份验证。远程系统只接受公钥认证(不是密码),而ssh没有任何公钥可以通过认证。

在你的第三次scp尝试中,有这样的:

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

你告诉它使用密钥文件" \ Users \ Rohan \ Desktop \ fall2014 courses \ research \ bucketsort-aws.pem"没有引号。 Scp最终寻找一个名为" UsersRohanDesktopfall2014"的密钥文件。它无法找到此密钥,因此无法再进行身份验证。

首先,密钥文件的名称包含一个空格,因此必须用引号括起来将其视为单个命令行参数。其次,看起来命令行上的反斜杠正在被破坏,所以请尝试使用正斜杠:

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

这是在Windows上?如果scp仍然抱怨无法找到密钥文件,请添加驱动器说明符:

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