为什么我的';git fetch';通过cygwin ssh连接不工作?

为什么我的';git fetch';通过cygwin ssh连接不工作?,git,ssh,cygwin,Git,Ssh,Cygwin,我有两台电脑,比如笔记本电脑和台式电脑。两者都安装了带有git和msysgit的cygwin 当我在desktop上,从cygwin命令窗口执行git fetch origin时,一切正常,从msysgit控制台执行git fetch origin 但是,当我使用cygwin SSH客户端从笔记本SSH到桌面时,然后从SSH会话执行git fetch origin,我得到 error: could not open '//path/to/origin.git' fatal: Could not

我有两台电脑,比如笔记本电脑和台式电脑。两者都安装了带有git和msysgit的cygwin

当我在
desktop
上,从cygwin命令窗口执行
git fetch origin
时,一切正常,从msysgit控制台执行
git fetch origin

但是,当我使用cygwin SSH客户端从
笔记本
SSH到
桌面
时,然后从SSH会话执行
git fetch origin
,我得到

error: could not open '//path/to/origin.git'
fatal: Could not read bundle '//path/to/origin.git'.
我认为这是一个权限问题,因为我访问的共享不是每个人都可以阅读的,而是只有某些用户可以阅读。我认为,当通过SSH访问我的
桌面
时,我与直接从
桌面
访问共享时的用户不同

如何让cygwin中的正确用户访问受保护的共享


编辑:虽然有人声称这个问题应该是的重复,但我看不出与这个问题有任何关系


编辑:如果这很重要:

  • cygwin git的版本是1.7.5.1
  • cygwin ssh是OpenSSH_5.8p1,OpenSSL 0.9.8r,2011年2月8日
  • msysgit的版本是1.7.6.msysgit.0

使用Active Directory进行集中用户管理的Windows使用Kerberos票证来验证对共享的访问。由于特权进程可以将本地凭据更改为指定用户,所以使用ssh登录可能不会通过Kerberos,在这种情况下,您可以像往常一样在本地执行任何操作,但共享将无法识别您

如果您使用公钥身份验证,它将永远不会通过Kerberos,因此您将永远无法访问共享(不是每个人都可以访问)

如果使用密码,则必须通过Kerberos。我相信该系统确实可以访问共享,但我不确定,因为从Windows的角度来看,它仍然不是常规登录

如果使用正确的选项编译并链接到Kerberos库,OpenSSH实际上支持使用Kerberos票证进行身份验证。然而,上次我查看cygwin时,ssh并没有以这种方式编译,并且不可能与Active Directory集成。但它仍然是Cygwin1.5,所以可能从那时起就已经实现了

无论如何,我建议使用远程桌面协议登录桌面。Linux也有可用的客户端。缺点是它是GUI,因此无法编写脚本。如果您使用RDP连接,那么您可能也会有一些运气,因此您实际上已经登录,将其放到后台,并同时使用ssh登录,但我没有尝试,所以我不确定


我还成功地使用Unix Kerberos实现从活动域获取票证(有一些怪癖,比如域必须用大写字母键入,但并不太复杂)并使用Samba中的Kerberos支持从Unix连接到共享。

使用Active Directory进行集中用户管理的Windows使用Kerberos票证验证对共享的访问。由于特权进程可以将本地凭据更改为指定用户,所以使用ssh登录可能不会通过Kerberos,在这种情况下,您可以像往常一样在本地执行任何操作,但共享将无法识别您

如果您使用公钥身份验证,它将永远不会通过Kerberos,因此您将永远无法访问共享(不是每个人都可以访问)

如果使用密码,则必须通过Kerberos。我相信该系统确实可以访问共享,但我不确定,因为从Windows的角度来看,它仍然不是常规登录

如果使用正确的选项编译并链接到Kerberos库,OpenSSH实际上支持使用Kerberos票证进行身份验证。然而,上次我查看cygwin时,ssh并没有以这种方式编译,并且不可能与Active Directory集成。但它仍然是Cygwin1.5,所以可能从那时起就已经实现了

无论如何,我建议使用远程桌面协议登录桌面。Linux也有可用的客户端。缺点是它是GUI,因此无法编写脚本。如果您使用RDP连接,那么您可能也会有一些运气,因此您实际上已经登录,将其放到后台,并同时使用ssh登录,但我没有尝试,所以我不确定


我还成功地使用Unix Kerberos实现从活动域获取票证(有一些怪癖,比如域必须用大写字母键入,但并不太复杂),并使用Samba中的Kerberos支持从Unix连接到共享。

您可能是同一个用户,但您可能未通过该共享的身份验证。桌面是否根据Active Directory进行身份验证?当你进入桌面时,你使用哪种身份验证方法?@sehe:不,绝对不是重复的。你可能是同一个用户的重复,但你可能没有通过共享的身份验证。桌面是否根据Active Directory进行身份验证?当SSH进入桌面时,您使用哪种身份验证方法?@sehe:不,绝对不是重复的。是的,我使用公钥身份验证来验证我的SSH会话。当然,使用RDP登录是可能的,但我的用例是在带宽有限(从家到工作的VPN隧道)的情况下使用SSH,而在带宽较低的情况下使用RDP并不是很有趣…@eckes:嗯,它永远不会与SSH公钥身份验证一起工作。时期尝试使用密码身份验证或在后台使用rdp(不要使用它,这样它就不会做任何事情并使用ssh),或者您可以尝试获取支持kerberos的windows ssh服务器。绝对没有办法让cygwin在访问共享时声明自己是我吗?@eckes:使用公钥是不可能的,无论是windows还是Linux。我们在