我有一个正在运行的EC2实例(FreeBSD 9 AMI ami-8cce3fe5),我可以使用我的亚马逊创建的密钥文件将其插入SSH,而无需输入密码,也没有问题。
但是,当我想使用scp将文件复制到实例时,要求输入密码:
scp somefile.txt -i mykey.pem root@my.ec2.id.amazonaws.com:/
Password:
有什么想法为什么会发生/如何预防?
-i
选项提供身份。可能是您还应该显示用于通过ssh登录的命令。
我有一个正在运行的EC2实例(FreeBSD 9 AMI ami-8cce3fe5),我可以使用我的亚马逊创建的密钥文件将其插入SSH,而无需输入密码,也没有问题。
但是,当我想使用scp将文件复制到实例时,要求输入密码:
scp somefile.txt -i mykey.pem root@my.ec2.id.amazonaws.com:/
Password:
有什么想法为什么会发生/如何预防?
-i
选项提供身份。可能是您还应该显示用于通过ssh登录的命令。
Answers:
我想到了。我的论点顺序错误。这有效:
scp -i mykey.pem somefile.txt root@my.ec2.id.amazonaws.com:/
ssh
命令更改为scp
并将名称文件添加到pem文件之后即可。
ec2-user@1.2.3.4:/home/ec2-user
很容易用更短,更轻松的ec2-user@1.2.3.4:./
./
FTW 代替!
scp -i /path/to/your/.pemkey -r /copy/from/path user@server:/copy/to/path
将文件从本地服务器复制到远程服务器
sudo scp -i my-pem-file.pem ./source/test.txt ec2-user@1.2.3.4:~/destination/
将文件从远程服务器复制到本地计算机
sudo scp -i my-pem-file.pem ec2-user@1.2.3.4:~/source/of/remote/test.txt ./where/to/put
所以基本语法是:
scp -i my-pem-file.pem username@source:/location/to/file username@destination:/where/to/put
-i
用于identity_file
假设您要发送的pem文件和somefile.txt位于“下载”文件夹中
scp -i ~/Downloads/mykey.pem ~/Downloads/somefile.txt root@my.ec2.id.amazonaws.com:~/
让我知道是否无效
:/
但是:~/
可以正常工作
要使用PSCP,您需要在使用PuTTYgen转换私钥中生成的私钥。您还需要Linux实例的公共DNS地址
pscp -i C:\path\my-key-pair.ppk C:\path\Sample_file.txt ec2-user@public_dns:/home/ec2-user/Sample_file.txt