SCP 在 EC2 (AWS) 中不工作
SCP not working in EC2 (AWS)
我可以通过 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
Permission denied (publickey).
lost connection
我也尝试过使用 public 实例 DNS,但没有任何变化。
知道为什么会发生这种情况以及如何解决吗?
发生这种情况的唯一方法是在当前目录中找不到私钥 mykey.pem
。您可能从 scp
.
以外的目录尝试 ssh
使用密钥的完整路径尝试以下操作:
scp -r –i /path/to/my_key.pem ./my_file ec2-user@my-public-ip:/home/ec2-user/my_file
如果失败,post 带有 -v
选项的输出。它会准确告诉你问题出在哪里
scp -v -r –i /path/to/my_key.pem ./my_file ec2-user@my-public-ip:/home/ec2-user/my_file
愚蠢的迟到附录:
为避免每次都指定私钥,只需将以下内容添加到 .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
希望对您有所帮助! :)
我来晚了,但这可能对某人有帮助。
不要使用 /home/ec2-user。而是直接使用文件名或文件夹名
例如。以下命令会将您的 my_file 放入主文件夹(即 /home/ec2-user)
scp -r –i "my_key.pem" ./my_file ec2-user@my-public-ip:my_file
或者假设您在 /home/ect-user/my_data
有一个文件夹
然后使用以下命令将您的文件复制到文件夹
scp -r –i "my_key.pem" ./my_file ec2-user@my-public-ip:my_data
我今天遇到了这个问题,并为我找到了解决方案(不是很优雅,但很有效)。 - 如果你想下载一次东西然后回滚所有设置,这个解决方案很好。
解决方法:
当我在使用 scp 时指定 -v 选项时,我注意到证书由于某种原因被拒绝,所以我转到 /etc/ssh/sshd_config
并设置 PasswordAuthentication yes。然后我用了systemctl restart sshd
.
完成此过程后,我转到本地计算机并使用:
scp -v -r myname@VPC:/home/{user}/filename.txt path/on/local/machine
前提是PWD和文件传输成功。
希望这对某人有所帮助:)
我可以通过 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
Permission denied (publickey).
lost connection
我也尝试过使用 public 实例 DNS,但没有任何变化。
知道为什么会发生这种情况以及如何解决吗?
发生这种情况的唯一方法是在当前目录中找不到私钥 mykey.pem
。您可能从 scp
.
ssh
使用密钥的完整路径尝试以下操作:
scp -r –i /path/to/my_key.pem ./my_file ec2-user@my-public-ip:/home/ec2-user/my_file
如果失败,post 带有 -v
选项的输出。它会准确告诉你问题出在哪里
scp -v -r –i /path/to/my_key.pem ./my_file ec2-user@my-public-ip:/home/ec2-user/my_file
愚蠢的迟到附录:
为避免每次都指定私钥,只需将以下内容添加到 .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
希望对您有所帮助! :)
我来晚了,但这可能对某人有帮助。
不要使用 /home/ec2-user。而是直接使用文件名或文件夹名
例如。以下命令会将您的 my_file 放入主文件夹(即 /home/ec2-user)
scp -r –i "my_key.pem" ./my_file ec2-user@my-public-ip:my_file
或者假设您在 /home/ect-user/my_data
有一个文件夹
然后使用以下命令将您的文件复制到文件夹
scp -r –i "my_key.pem" ./my_file ec2-user@my-public-ip:my_data
我今天遇到了这个问题,并为我找到了解决方案(不是很优雅,但很有效)。 - 如果你想下载一次东西然后回滚所有设置,这个解决方案很好。
解决方法:
当我在使用 scp 时指定 -v 选项时,我注意到证书由于某种原因被拒绝,所以我转到 /etc/ssh/sshd_config
并设置 PasswordAuthentication yes。然后我用了systemctl restart sshd
.
完成此过程后,我转到本地计算机并使用:
scp -v -r myname@VPC:/home/{user}/filename.txt path/on/local/machine
前提是PWD和文件传输成功。
希望这对某人有所帮助:)