我有两台电脑,比如notebook
和desktop
。两者都安装了gg和msysgit的cygwin。
当我在desktop
上并从cygwin命令窗口执行git fetch origin
时,一切正常,以及来自msysgit控制台的git fetch origin
。
但是当我使用cygwin SSH客户端从desktop
SSH notebook
然后从SSH会话中执行git fetch origin
时,我得到了
error: could not open '//path/to/origin.git'
fatal: Could not read bundle '//path/to/origin.git'.
我假设这是一个权利问题,因为我访问的共享对每个人都不可读,但仅限于某些用户。我认为,当通过SSH访问desktop
时,我与{I}直接访问共享时的用户不同。
如何让cygwin中的正确用户访问受保护的共享?
编辑虽然声称这个问题与'X' does not appear to be a git repository (I'm sure the path is correct)重复,但我没有看到与该问题的任何关系。
编辑:如果重要:
答案 0 :(得分:1)
使用Active Directory进行集中用户管理的Windows使用Kerberos票证来验证对共享的访问权限。由于特权进程可以将本地凭据更改为指定用户,因此使用ssh登录可能不会通过Kerberos,在这种情况下,您将能够像往常一样在本地执行任何操作,但共享将无法识别您。
如果您使用公钥身份验证,它永远不会通过Kerberos,因此您永远无法访问共享(每个人都无法访问)。
如果您使用密码,则必须通过Kerberos。我相信系统可以访问共享,但我不确定,因为从Windows的角度来看,它仍然没有定期登录。
如果使用正确的选项进行编译并链接到Kerberos库,OpenSSH实际上支持使用Kerberos票证进行身份验证。但是上次我看了cygwin ssh是不编译的那种方式,并且无法与Active Directory集成。但它仍然是cygwin 1.5,所以它可能已经实施了。
无论如何,我建议使用远程桌面协议登录桌面。 Linux也有工作客户端。缺点是它的GUI,所以它不是可编写脚本的。如果你连接RDP,你也可能会有一些运气,所以你实际上已经登录,把它放到后台并与ssh并行登录,但我没试过,所以我不确定。
我还成功使用了Unix Kerberos实现从Active Domain获取票证(有一些怪癖,例如域名必须以大写字母输入,但没有太复杂)并使用Samba中的Kerberos支持连接到共享来自Unix。