我有一个 EC2 实例正在运行(FreeBSD 9 AMI ami-8cce3fe5),我可以使用我的亚马逊创建的密钥文件 ssh 进入它,而无需密码提示,没问题。
但是,当我想使用 scp 将文件复制到实例时,系统会要求我输入密码:
scp somefile.txt -i mykey.pem root@my.ec2.id.amazonaws.com:/
Password:
任何想法为什么会发生这种情况/如何预防?
-i
选项来提供您的身份。可能您还应该显示用于使用 ssh 登录的命令。
我想到了。我的论点顺序错误。这有效:
scp -i mykey.pem somefile.txt root@my.ec2.id.amazonaws.com:/
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
我使用以下命令从本地 linux Centos 7 复制到 AWS EC2。
scp -i user_key.pem file.txt ec2-user@my.ec2.id.amazonaws.com:/home/ec2-user
scp -i ~/.ssh/key.pem ec2-user@ip:/home/ec2-user/file-to-copy.txt .
文件名不应该在 pem 文件和 ec2-user 字符串之间 - 这不起作用。这也允许您保留复制文件的名称。
假设您要发送的 pem 文件和 somefile.txt 位于 Downloads 文件夹中
scp -i ~/Downloads/mykey.pem ~/Downloads/somefile.txt root@my.ec2.id.amazonaws.com:~/
让我知道它是否不起作用
:/
“拒绝访问”,但用 :~/
它可以工作
scp -i /home/barkat/Downloads/LamppServer.pem lampp_x64_12.04.tar.gz
这将对你们所有人都非常有帮助
我的 hadoopec2cluster.pem
文件是我本地 Mac 上目录中唯一的一个,无法使用 scp -i hadoopec2cluster.pem hadoopec2cluster.pem ubuntu@serverip:~
将其 scp 到 aws。
将 hadoopec2cluster.pem 复制到 hadoopec2cluster_2.pem,然后复制 scp -i hadoopec2cluster.pem hadoopec2cluster_2.pem ubuntu@serverip:~
。瞧!
我被挂断了,因为我正在指定我的公钥文件
scp -i [private key file path]
当我发现这个错误并将其更改为私钥路径时,我已经准备好了。
在您的情况下,用户 root
不会有任何问题。但在某些情况下,您需要以其他用户身份在 SSH 下登录,请确保您正在 scp
登录的目录对您正在 SSH 登录的用户具有足够的权限。
要使用 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
写这段代码
scp -r -o "ForwardAgent=yes" /Users/pengge/11.vim root@192.168.2.228:/root/
如果您有一个可以访问目标服务器的 SSH 密钥而源服务器没有,添加 -o "ForwardAgent=yes" 将允许您将 SSH 代理转发到源服务器,以便它可以使用您的 SSH 密钥连接到目标服务器。
用于 ec2 服务器
#将您的密钥移动到 /tmp 或服务器上的正确文件夹
分配正确的权限
sudo chmod 600 /tmp/dev-sunrobotics-snippetbucketcom.pem
比连接到服务器或传输
scp -i /tmp/dev-snippetbucketcom.pem filestore.tar.gz ubuntu@9.911.99.91:/tmp
确保在您的 ip 安全中您允许 ip 地址连接
刚刚测试:
运行以下命令:
sudo shred -u /etc/ssh/*_key /etc/ssh/*_key.pub
然后:
创建 ami(ec2 的图像)。从第 2 步的新 ami(图像)启动选择了新键。
不定期副业成功案例分享
ssh
命令更改为scp
并在 pem 文件后添加名称文件。ec2-user@1.2.3.4:/home/ec2-user
很容易被更短更简单的ec2-user@1.2.3.4:./
./
FTW 替换!