不能从Linux EC2实例到本地机器的SCP

我试图把我的Amazon EC2实例中的一个文件存入我的Linux机器。 我已经做了相当多的阅读,似乎没有任何工作。

我可以从我的Linux机器SSH到我的实例(这是我如何连接到它),甚至可以通过做scp -i my-key-pair.pem SampleFile.txt ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~进入它scp -i my-key-pair.pem SampleFile.txt ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~ 。 根据亚马逊在这个环节的说明,为了让SCP从实例到我的机器,我只需要“简单地颠倒主机参数的顺序”。 换句话说,这个:

 scp -i my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~/SampleFile.txt ~/SampleFile2.txt 

我用googlesearch了一下,甚至还读了一些类似的问题,包括这个 ,但是我没有运气。 我不确定是什么问题。 有一天,我设法跨越实例(即从一个EC2实例到另一个实例)没有问题 – 至less据说需要多一点修补。

另一个令我困扰的问题是,从实例到本地机器的SCP命令包含私钥(上面代码块中的my-key-pair.pem),而我寻找实例上的.pem文件并没有find。 我错过了什么吗? 提前致谢。

顺便说一下,我看到通用的“权限被拒绝(公钥)”错误。

我发现问题是什么。 我是从实例运行的命令,而不是我的本地机器,这有点奇怪,因为当你从一个实例到另一个实例的SCP从你正在复制的实例运行SCP命令,但是哦。

 `scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/` 

– 如果使用的密钥不是默认密钥,则使用上述命令从服务器scp中找到一个文件夹。

scp -r -i key.pem user@your.server.example.com:/path/to/foo /home/user/Desktop/

这个命令应该首先通过ssh连接到Amazon EC2,

scp -i my-key-pair.pem <local file name on Amazon EC2> user_name@<linux_host_ip>:/<copy path>

例如:

scp -i my-key-pair.pem SampleFile2.txt user_name @ linuxHostIp :/home/userName/fileName.txt

您的机器的IP是预期的,而不是你的路由器

否则,可能无法识别要复制到哪台机器, 并将所有数据复制到不需要的路由器后面的所有机器上

可能这就是为什么它失败了。