rsync 到 EC2:身份文件无法访问

rsync 到 EC2:身份文件无法访问

我正在尝试将文件 rsync 到我的 EC2 实例:

 rsync -Paz --rsh "ssh -i ~/.ssh/myfile.pem" --rsync-path "sudo rsync" file.pdf [email protected]:/home/ubuntu/

这将给出以下错误消息:

Warning: Identity file ~/.ssh/myfile.pem not accessible: No such file or directory.
[email protected]'s password: 

但是, pem 文件肯定位于该路径~/.ssh/myfile.pemvi ~/.ssh/myfile.pem向我显示该文件。

如果我从 rsync 命令的最末尾删除远程路径:

rsync -Paz --rsh "ssh -i ~/.ssh/myfile.pem" --rsync-path "sudo rsync" file.pdf [email protected]

然后命令似乎起作用了......

building file list ... 
1 file to consider
file.pdf
       41985 100%    8.79MB/s    0:00:00 (xfer#1, to-check=0/1)
sent 41795 bytes  received 42 bytes  83674.00 bytes/sec
total size is 41985  speedup is 1.00

...但是当我进入远程服务器时,实际上什么都没有传输。

我究竟做错了什么?

答案1

--rsync-path "sudo rsync"

这使得 rsync 由特权用户运行(),~/根目录的主目录路径也是如此。如果你省略这部分代码,它应该可以工作。

PS.scp正在运行,因为您使用普通帐户运行它。

PS2. 删除远程路径也有效,但这不会通过网络发送任何内容,而只是将文件“file.pdf”复制到名为[电子邮件保护](参见ls -l

答案2

当只有几个文件时,使用rsync并不比 好scp。但是,如果您管理的是完整的文档树,那么它就很棒,因为它只会发送差异。以下是我一直做的事情:

~/.ssh/config在我的文件中为远程服务器设置一个条目

Host easy-short-name
  HostName ec2-XXX-XX-XX-X.compute-1.amazonaws.com
  IdentityFile ~/.ssh/private_key.pem
  User ubuntu

然后您就可以使用此 rsync 命令,而不必处理用户名、密钥文件或长主机名:

rsync -avrk source-dir easy-short-name:~/destination-dir

此设置也适用于并具有允许我仅使用即可登录的scp优点。ssh easy-short-name

相关内容