Ssh 为rsync-rsh使用我自己的远程shell

Ssh 为rsync-rsh使用我自己的远程shell,ssh,rsync,Ssh,Rsync,我有一个脚本,我们在内部使用它来跟踪客户端名称、主机名和SSH端口号。它位于/etc/clients.ssh中 我的名为“connect”(symlink“c”)的脚本接受一个参数$1,它是客户端名称。然后,它使用该端口号在该主机名上打开到客户端的SSH会话。。“C”还可以使用“-l用户名”作为远程用户名 我想把这个和rsync一起使用。--rsh=COMMAND看起来像是一张罚单,但是我得到了 $ rsync -vvvvn -e 'c -l manager' abc:/tmp/ cmd=c -

我有一个脚本,我们在内部使用它来跟踪客户端名称、主机名和SSH端口号。它位于/etc/clients.ssh中

我的名为“connect”(symlink“c”)的脚本接受一个参数$1,它是客户端名称。然后,它使用该端口号在该主机名上打开到客户端的SSH会话。。“C”还可以使用“-l用户名”作为远程用户名

我想把这个和rsync一起使用。
--rsh=COMMAND
看起来像是一张罚单,但是我得到了

$ rsync -vvvvn -e 'c -l manager' abc:/tmp/
cmd=c -l manager machine=abc user=<NULL> path=/tmp/
cmd[0]=c cmd[1]=-l cmd[2]=manager cmd[3]=abc cmd[4]=rsync cmd[5]=--server cmd[6]=--sender cmd[7]=-vvvvnde.sf cmd[8]=. cmd[9]=/tmp/
opening connection using: c -l manager abc rsync --server --sender -vvvvnde.sf . /tmp/
note: iconv_open("UTF-8", "UTF-8") succeeded.
(Client) Protocol versions: remote=1886221359, negotiated=30
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
[Receiver] _exit_cleanup(code=2, file=compat.c, line=174): entered
rsync error: protocol incompatibility (code 2) at compat.c(174) [Receiver=3.0.9]
[Receiver] _exit_cleanup(code=2, file=compat.c, line=174): about to call exit(2)
$rsync-vvvn-e'c-l manager'abc:/tmp/
cmd=c-l manager machine=abc user=path=/tmp/
cmd[0]=c cmd[1]=-l cmd[2]=manager cmd[3]=abc cmd[4]=rsync cmd[5]=--server cmd[6]=--sender cmd[7]=-vvvde.sf cmd[8]=。cmd[9]=/tmp/
使用以下命令打开连接:c-l manager abc rsync--server--sender-vvnde.sf/tmp/
注:iconv_open(“UTF-8”、“UTF-8”)成功。
(客户端)协议版本:远程=1886221359,协商=30
协议版本不匹配--您的shell是否干净?
(有关说明,请参阅rsync手册页)
[Receiver]\u exit\u cleanup(代码=2,文件=compat.c,行=174):输入
rsync错误:compat.c(174)处的协议不兼容(代码2)[接收器=3.0.9]
[Receiver]\u exit\u cleanup(code=2,file=compat.c,line=174):即将调用exit(2)

据我所知,您可以通过在
.ssh/config
中为每个客户端创建一个条目来替换clients.ssh。例如,一个名为“foobar”的条目:


将使您能够简单地
ssh foobar
到主机中,并使用
rsync-SomeParameters foobar:/path/to/copy/path/to/local/storage
复制所需的文件。

我从openssh中获得了这个想法,并使用了stock
ssh
客户端

Host foobar
    HostName example.com #or IP address
    Port 980
    User test
    CheckHostIP no