Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssh rsync在clean shell WSL上提供协议版本不匹配->;德比安_Ssh_Protocols_Rsync_Mismatch - Fatal编程技术网

Ssh rsync在clean shell WSL上提供协议版本不匹配->;德比安

Ssh rsync在clean shell WSL上提供协议版本不匹配->;德比安,ssh,protocols,rsync,mismatch,Ssh,Protocols,Rsync,Mismatch,我在一个WSL bash shell中,试图通过ssh与远程cloudcast机器(Debian)进行rsync。然而,我不断得到协议不匹配错误 一些研究表明,造成这种情况的最常见原因是外壳不干净,即:当登录时,外壳会打印一些东西。 在远程机器中,我向用户home添加了.hushlogin,还向.bashrc添加了PS1=“”,以消除提示(根据某个帖子) 测试一个干净的外壳表明它确实是干净的。以下用户在没有任何消息甚至提示的情况下登录: ssh-tt-i~/id_rsa-F/dev/null-o

我在一个WSL bash shell中,试图通过ssh与远程cloudcast机器(Debian)进行rsync。然而,我不断得到协议不匹配错误

一些研究表明,造成这种情况的最常见原因是外壳不干净,即:当登录时,外壳会打印一些东西。 在远程机器中,我向用户home添加了.hushlogin,还向.bashrc添加了PS1=“”,以消除提示(根据某个帖子)

测试一个干净的外壳表明它确实是干净的。以下用户在没有任何消息甚至提示的情况下登录:

ssh-tt-i~/id_rsa-F/dev/null-oStrictHostKeyChecking=yes-oUserKnownHostsFile=/mnt/c/Users/anonyuser/AppData/Roaming/GGP/ssh/known_hostscloudcast@123.123.12.12-第44722页--

以下显示使用0字节创建的log.out:

ssh-tt-i~/id_rsa-F/dev/null-oStrictHostKeyChecking=yes-oUserKnownHostsFile=/mnt/c/Users/anonyuser/AppData/Roaming/GGP/ssh/known_hostscloudcast@123.123.12.12-p 44722--false>log.out

但这是:

rsync-a-v-e“ssh-tt-i~/id_rsa-F/dev/null-oStrictHostKeyChecking=yes-oUserKnownHostsFile=/mnt/c/Users/anonyuser/AppData/Roaming/GGP/ssh/known_hostscloudcast@136.112.98.92-p 44722--“lol.txtcloudcast@123.123.12.12:/home/cloudcast/

提供协议不匹配版本

使用-vvvv运行可以显示以下内容:

(客户端)协议版本:远程=1752392034,协商=31

我尝试过在ssh命令中添加-q和/或-2,但没有区别

我检查了rsync版本,它们在远程和本地计算机中是相同的:

rsync  version 3.1.2  protocol version 31
Copyright (C) 1996-2015 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
    socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
    append, ACLs, xattrs, iconv, symtimes, prealloc
本地ssh版本为: OpenSSH_7.6p1 Ubuntu-4ubuntu0.3,OpenSSL 1.0.2n 2017年12月7日

远程ssh版本为: OpenSSH_7.4p1 Debian-10+deb9u3,OpenSSL 1.0.2l 2017年5月25日


有什么问题吗?

好吧,根据我上面的评论,我尝试了以下方法:
rsync-a-vvvv-e“ssh-tt-i~/id_rsa-F/dev/null-oStrictHostKeyChecking=yes-oUserKnownHostsFile=/mnt/c/Users/anonyuser/AppData/Roaming/GGP/ssh/known_hosts-p 44722”lol.txtcloudcast@123.123.12.12:/home/cloudcast/

请注意,ssh命令中没有IP,也没有--。 这使我通过了协议版本不匹配。rsync仍然不起作用,但至少它更进一步了

编辑:最后的答案是:

rsync -a -vvvv -e "ssh -i ~/id_rsa -F /dev/null -oStrictHostKeyChecking=yes -oUserKnownHostsFile=/mnt/c/Users/anonyuser/AppData/Roaming/GGP/ssh/known_hosts -p 44722" lol.txt cloudcast@123.123.12.12:/home/cloudcast/

注意ssh命令的no-tt。这是垃圾箱转移,d-uh

我在Fasthosts上的一个站点上遇到了这个问题,将其移动到了较新的体系结构,以允许我向域中添加SSL证书。原来答案是在SSH欢迎屏幕中找到的,只是指定了一个不同的端口。

post中的IP错误,rsync命令应该是:
rsync-a-v-e“ssh-tt-i~/id_rsa-F/dev/null-oStrictHostKeyChecking=yes-oUserKnownHostsFile=/mnt/c/Users/anonyuser/AppData/Roaming/GGP/ssh/known_hosts”cloudcast@123.123.12.12-p 44722--“lol.txtcloudcast@123.123.12.12:/home/cloudcast/
我也尝试了不使用ssh目标:
rsync-a-v-e”ssh-tt-i~/id_rsa-F/dev/null-oStrictHostKeyChecking=yes-oUserKnownHostsFile=/mnt/c/Users/anonyuser/AppData/Roaming/GGP/ssh/known_hosts-p 44722--“lol.txtcloudcast@123.123.12.12:/home/cloudcast/
我想发生的是
rsync
正在添加“cloudcast@123.123.12.12“对于
ssh
命令,由于arg列表中已经有一个地址,因此它会错误地执行远程命令;因此,它得到的不是一个干净的shell,而是一个“commandnotfound”错误。