为什么我通过cygwin ssh连接'git fetch'不起作用?



我有两台计算机,分别是notebookdesktop。都安装了cygwin、git和msysgit。

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

但是当我使用cygwin SSH客户端从notebook SSH到desktop,然后从SSH会话执行git fetch origin时,我得到

error: could not open '//path/to/origin.git'
fatal: Could not read bundle '//path/to/origin.git'.

假设这是一个权限问题,因为我正在访问的共享不是对所有人都可读,而是对某些用户可读。我认为,当通过SSH到我的desktop时,我不是我直接从desktop访问共享时的用户。

如何在cygwin中获得正确的用户访问受保护的共享?


Edit:尽管它声称这个问题应该是'X'(我确信路径是正确的),我没有看到与这个问题有任何关系。


编辑:如果重要的话:

  • cygwin git版本为1.7.5.1
  • cygwin ssh is OpenSSH_5.8p1, OpenSSL 0.9.8r 8 Feb 2011
  • msysgit版本为1.7.6.msysgit.0

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

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

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

如果使用正确的选项编译并链接到Kerberos库,OpenSSH实际上支持使用Kerberos票据进行身份验证。然而,上次我看cygwin ssh是不是编译的方式和集成与活动目录是不可能的。但它仍然是cygwin 1.5,所以它可能从那时起就实现了。

无论如何,我建议用远程桌面协议登录到桌面。Linux也有工作客户端。缺点是它是GUI,所以不能编写脚本。如果你连接到RDP,你也可能有一些运气,所以你实际上是登录的,把它放在后台,用ssh并行登录,但我没有尝试,所以我不确定。

我还成功地使用Unix Kerberos实现从Active Domain获得票证(有一些奇怪的地方,比如必须用大写输入域,但没有太复杂),并使用Samba中的Kerberos支持从Unix连接到共享。

最新更新