SCP未在EC2(AWS)中工作

时间:2017-01-11 15:48:15

标签: linux ssh amazon-ec2 file-transfer scp

我可以通过SSH连接到EC2实例:

ssh -i "my_key.pem" ec2-user@my-public-ip

然而,scp并不起作用:

scp -r –i "my_key.pem" ./my_file ec2-user@my-public-ip:/home/ec2-user/my_file
  

许可被拒绝(公钥)。
  失去联系

我也尝试过使用公共实例DNS,但没有任何变化。

知道为什么会发生这种情况以及如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

发生这种情况的唯一方法是在当前目录中找不到私钥mykey.pem。您可以从不同于ssh的目录中尝试scp

尝试使用以下完整路径指向您的密钥:

scp -r –i /path/to/my_key.pem ./my_file ec2-user@my-public-ip:/home/ec2-user/my_file

如果失败,请使用-v选项发布输出。它会告诉你问题的确切位置

scp -v -r –i /path/to/my_key.pem ./my_file ec2-user@my-public-ip:/home/ec2-user/my_file

答案 1 :(得分:0)

附录太晚了

为避免每次都指定私钥,只需将以下内容(无注释)添加到.ssh/config文件中(如果尚未创建,则创建它):

Host testserver                  // a memorable alias
Hostname 12.34.56.67             // your server ip
User ec2-user                    // user to connect
IdentityFile /path/to/key.pem    // path to the private key
PasswordAuthentication no

那么一个简单的ssh testserver应该可以在任何地方工作(因此您的scp也可以)。

我使用它通过scp与Vim连接:

vim scp://testserver/relative/file/path

vim scp://testserver//absolute/file/path

vim scp://testserver/relative/dir/path/(注意斜杠)

分别直接从本地编辑文件和浏览文件夹(因此使用我的珍贵的.vimrc <3 配置)。

找到解决办法here

希望这会有所帮助! :)