从服务器复制时,我总是使用以下命令: rsync --progress -avze ssh user@host:/path/to/files ./here 。 然而,一个心灵的朋友告诉我,我可以简单地做rsync --progress -avz user@host:/path/to/files ./here 。 所以问题是,如果你不需要-e ssh为什么它有吗?
任何时候,你需要在用户和主机之外的ssh命令的附加选项,那么你需要-e标志。 也许你连接的服务器有ssh监听端口2222。
rsync -e 'ssh -p 2222' /source usr@host:/dest
另外一个解决这个问题,有2个文件,你可以使用。 /etc/ssh/ssh_config或~/.ssh/config
configuration文件使用与ssh_config相同的格式。 这只是能够在每个用户的基础上configuration!
你不需要-e ssh来使用ssh。 实际上,如果你将目标指定为user @ host:/ path / to / files,那么默认使用ssh。 它出于兼容性原因留在a)和b)你可能有rsyncd和ssh主机组合的情况。
您还需要-e如果您使用非默认私钥位置,即通过-e 'ssh -i /path/to/private/key/file.pem'指定私钥。 对于这个问题,sshd的非默认侦听端口也是。 基本上,使用-e如果只是使用ssh user@host不起作用。
这取决于在编译时为--with-rshconfiguration选项指定的内容。 如果没有指定这个选项,默认是ssh。 过去有一段时间是rsh,但即使它是rsh,也可能没有必要,因为ssh可能是许多框中默认的rsh实现。 在我的所有机器上,例如readlink -f $(which rsh)表明rsh实际上只是指向/ usr / sbin / ssh的符号链接