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 Windows:rsync在msys中工作,但不是cygwin(git-bash)_Ssh_Cygwin_Git Bash_Rsync_Msys - Fatal编程技术网

Ssh Windows:rsync在msys中工作,但不是cygwin(git-bash)

Ssh Windows:rsync在msys中工作,但不是cygwin(git-bash),ssh,cygwin,git-bash,rsync,msys,Ssh,Cygwin,Git Bash,Rsync,Msys,我正在从Windows 10设备连接到Linux系统。我并行使用msys和gitbash。我想使用rsync在Linux机器上同步文件。目前它在msys中工作,但在git bash中不工作 我希望它能在GitBash中工作,因为两者并行使用很难。我选择GitBash而不是msys,因为我的团队无论如何都需要git。我的团队成员应该也使用我正在编写的脚本,他们不知道msys,但知道git bash 我使用的命令是 rsync -iru -e ssh $(ls -d [^O]*) "adv

我正在从Windows 10设备连接到Linux系统。我并行使用msys和gitbash。我想使用rsync在Linux机器上同步文件。目前它在msys中工作,但在git bash中不工作

我希望它能在GitBash中工作,因为两者并行使用很难。我选择GitBash而不是msys,因为我的团队无论如何都需要git。我的团队成员应该也使用我正在编写的脚本,他们不知道msys,但知道git bash

我使用的命令是

rsync -iru -e ssh $(ls -d [^O]*) "advanced@$ip:/home/user/"
在msys中,这是有效的。在GitBash中,我得到了错误消息

dup() in/out/err failed
rsync: read error: Connection reset by peer (104)
rsync error: error in rsync protocol data stream (code 12) at /usr/src/rsync/rsync-3.0.8/io.c(760) [sender=3.0.8]
(本地rsync版本为3.0.8,msys和git bash都使用相同的二进制文件。)

我知道msys和GitBash使用不同的ssh二进制文件。虽然差异显示它们是相同的,但我在git bash中尝试了这一点

rsync -ru -e '/c/MinGW/msys/1.0/bin/ssh.exe' $(ls -d [^O]*) "advanced@$ip:/home/user/"
但仍然失败

ssh似乎使用了一些隐藏的设置,这是合理的,因为msys和gitbash使用不同的主目录(分别是专用目录和我的Windows用户目录)。但是,它们各自的.ssh目录只包含通常的可疑文件(id_rsa、id_rsa.pub、已知的主机),并且没有包含任何设置的文件

编辑:

下面是/var/log/auth.log…的内容。。。211是Linux机器,…2是Windows机器

成功(与mingw一起):

不成功(使用git bash)


我不知道“无法查找用户”是什么意思。当我将ssh设置为advanced时,日志中会显示同一行,但我将被验证为“advanced”-没有根权限,正如“(uid=0)”所示。

“通过对等方重置连接”表示远程服务器决定断开连接(或连接崩溃)。如果您有访问权限,请检查远程服务器上的系统日志,查看sshd是否正在记录它这样做的原因。@Kenster我找不到日志。rsyncd表示默认情况下它会登录到syslog,但是syslog ng生成的文件中没有任何内容(在Linux机器上使用)。我修改了/etc/rsyncd.conf以直接将日志记录到日志文件中,但没有任何效果-无论是对于失败还是成功的ryncs,都不会生成日志文件。我甚至触摸了日志文件的d和chmod 777以保证访问,但没有用。你没有在寻找rsync日志。您正在从远程系统(无论ssh连接到哪个系统)上的ssh服务器查找日志。auth.log显示两种情况下的身份验证都成功。宋承宪也能顺利地完成这两项任务。我的错。我以为重置错误来自ssh。
sshd[25494]: Accepted publickey for advanced from 192.168.47.2 port 32589 ssh2: RSA SHA256:ofWD8Ii5DnGUyK2wUDpl71KhQcRajEqBWv6n27YwQ8g
sshd[25494]: pam_keyinit(sshd:session): Unable to look up user "advanced"
sshd[25494]: pam_unix(sshd:session): session opened for user advanced by (uid=0)
sshd[25500]: Received disconnect from 192.168.47.2: 11: disconnected by user
sshd[25494]: pam_unix(sshd:session): session closed for user advanced
sshd[25500]: Disconnected from 192.168.47.2
sshd[24626]: Accepted publickey for advanced from 192.168.47.2 port 32488 ssh2: RSA SHA256:ofWD8Ii5DnGUyK2wUDpl71KhQcRajEqBWv6n27YwQ8g
sshd[24626]: pam_keyinit(sshd:session): Unable to look up user "advanced"
sshd[24626]: pam_unix(sshd:session): session opened for user advanced by (uid=0)
sshd[24626]: pam_unix(sshd:session): session closed for user advanced