使用密钥通过 ssh 进行 Rsync 获取错误 EC2

Rsync over ssh with key gets error EC2

我可以通过 ssh 连接到我的 EC2:

ssh -i /Users/User/Downloads/key.pem ubuntu@ec2-myec2.amazonaws.com

我的目录:

/A
   /B
      /folderToTransfer

我可以 rsync 到同一目录:

rsync -avrz -e “ssh -i /Users/User/Downloads/key.pem”   / 
/Users/User/Documents/Programming/A/B/folderToTransfer  /
ubuntu@ec2-myec2.amazonaws.com

新目录:

/A
   /B
      /folderToTransfer
      /ubuntu@ec2-myec2.amazonaws.com

但这失败了(在末尾添加 :~/ 时)

rsync -avrz -e “ssh -i /Users/User/Downloads/key.pem”   / 
/Users/User/Documents/Programming/A/B/folderToTransfer  /
ubuntu@ec2-myec2.amazonaws.com:~/

有错误

rsync: Failed to exec ?\#200\#234ssh: No such file or directory (2)
rsync error: error in IPC code (code 14) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-47/rsync/pipe.c(86) [sender=2.6.9]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-47/rsync/io.c(453) [sender=2.6.9]

其他人在使用 ssh -i rsync 时似乎没有同样的问题,我做错了什么?

rsync -avrz -e “ssh -i /Users/User/Downloads/key.pem”   / 
               ^                                    ^

您没有在此处使用 ASCII 双引号字符 "。您正在使用某种用于排版的开引号和闭引号字符。您的命令失败,因为 shell 没有将这些字符视为引号; rsync 最终尝试执行名为 “ssh.

的程序

用ASCII双引号替换字符:

rsync -avrz -e "ssh -i /Users/User/Downloads/key.pem"   / 

下面的 AWS ec2 解决方案(带密钥)仅在命令行格式良好的情况下才对我有用

  • 解决方案 1

rsync -avz -e "ssh -i /root/xxxxxx.pem" ec2-user@xxxxxx.com:/var/www/ /var/www/copywww/

  • 解决方案 2

rsync -avrz -e " ssh -i /root/xxxxxx.pem " ec2-user@xxxxx.com:/var/www/ /var/www/copywww