使用密钥通过 ssh 进行 Rsync 得到错误 EC2

use*_*093 1 ssh rsync amazon-ec2

我可以通过 ssh 进入我的 EC2:

ssh -i /Users/User/Downloads/key.pem ubuntu@ec2-myec2.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

我的目录:

/A
   /B
      /folderToTransfer
Run Code Online (Sandbox Code Playgroud)

我可以使用以下命令将 rsync 同步到同一目录中:

rsync -avrz -e “ssh -i /Users/User/Downloads/key.pem”   / 
/Users/User/Documents/Programming/A/B/folderToTransfer  /
ubuntu@ec2-myec2.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

新目录:

/A
   /B
      /folderToTransfer
      /ubuntu@ec2-myec2.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

但这失败了(添加 :~/ 到最后时)

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

随着错误

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]
Run Code Online (Sandbox Code Playgroud)

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

Ken*_*ter 5

rsync -avrz -e “ssh -i /Users/User/Downloads/key.pem”   / 
               ^                                    ^
Run Code Online (Sandbox Code Playgroud)

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

用 ASCII 双引号替换字符:

rsync -avrz -e "ssh -i /Users/User/Downloads/key.pem"   / 
Run Code Online (Sandbox Code Playgroud)