我有一个正在运行的EC2实例(FreeBSD 9 AMI AMI -8cce3fe5),我可以使用亚马逊创建的密钥文件ssh到它,没有密码提示,没有问题。

但是,当我想要使用scp将一个文件复制到实例中时,我被要求输入密码:

scp somefile.txt -i mykey.pem root@my.ec2.id.amazonaws.com:/

Password:

你知道为什么会发生这种情况/如何预防吗?


当前回答

对于ec2服务器

#移动你的密钥到/tmp或服务器上的右边文件夹

分配权限

Sudo chmod 600 /tmp/dev-sunrobotics-snippetbucketcom.pem

然后连接到服务器或传输

SCP -i /tmp/dev-snippetbucketcom。Pem filestore.tar.gz ubuntu@85.111.5.33.98:/tmp

确保在您的ip安全,您已经允许ip地址连接

其他回答

假设你想要发送的pem文件和somefile.txt文件在Downloads文件夹中

scp -i ~/Downloads/mykey.pem ~/Downloads/somefile.txt root@my.ec2.id.amazonaws.com:~/

如果不管用就告诉我

scp -i /path/to/your/.pemkey -r /copy/from/path user@server:/copy/to/path

在您的示例中,根用户不会有任何问题。但在某些情况下,您需要以不同的用户在SSH下登录,请确保您正在scp-ing的目录对您正在SSH-ing的用户具有足够的权限。

编写以下代码

scp -r -o "ForwardAgent=yes" /Users/pengge/11.vim root@192.168.2.228:/root/

如果您有访问目标服务器的SSH密钥,而源服务器没有,添加-o "ForwardAgent=yes"将允许您将SSH代理转发到源服务器,以便它可以使用您的SSH密钥连接到目标服务器。

我一直挂在这里,因为我正在指定我的公钥文件

scp -i [private key file path]

当我发现这个错误并将其改为私钥路径时,我就万事俱备了。