我正在尝试设置一个基于 Windows 的 Web 服务器,但在 Mac OSX 上进行开发工作。我在 Windows 服务器上安装了 freeSSHd 和 msysGit,并在我想要的位置设置了一个存储库。我的 Mac 上也有 git,并在那里设置了一个存储库。当我尝试通过 SSH 克隆、拉取或推送到 Windows 存储库时,它给我一个错误,“致命:协议错误:错误的行长度字符”我在客户端中将远程设置为什么并不重要( Mac OSX)机器 - 我可以将它指向一个不存在的文件夹,但它仍然给我这个错误。
我还在我身边的 Linux 机器上尝试过这个,它运行得很好,所以它不是我的 Mac。
我有几个想法:
也许 freeSSHd 的行为不正确(正如这里所建议的 http://groups.google.com/group/msysgit/browse_thread/thread/c045ac2fc79e1bfb)这样我就可以为 Windows 获取不同的 SSH 服务器 - 也许是 OpenSSH
-
也许我输入的代码错误地组合了 Mac 和 Windows 文件路径。我试过:
须藤 git 克隆 ssh://[电子邮件受保护] /cdn-cgi/l/email-protection/C:/Users/[my_username]/[remote_repo_name]/.git [目标]
and
须藤 git 克隆 ssh://[电子邮件受保护] /cdn-cgi/l/email-protection/C:\Users\[我的用户名]\[远程存储库名称]\.git [目标]
我对这两个都遇到同样的错误。
有人知道出了什么问题吗?更好的是,有没有人能够做到我想做的事情(通过 SSH 推送到 Windows 存储库或从 Windows 存储库中拉取)?
Thanks!
我还没有做过这种设置(我的 ssh 服务器是 Solaris10),但是我在尝试设置时发现了大多数 ssh 错误gitolite http://github.com/sitaramc/gitolite.
- 作为先决条件,gitolite 要求
ssh user@remote git --version
works
- gitolite 使用一个有趣的 ssh 配置属性,来自
%HOME%/.ssh/authorized_keys
file
您不能只在那里复制您的公钥(位于“authorized_keys
"),但您也可以引用要为 ssh 命令执行的脚本:
> more authorized_keys
command="path/to/any/script/you/want" ssh-rsa AAAAB3N;...A_long_key..J6U19Jsf/kuO99XIrNE4ePzHw== username@pc_hostname
意味着您将在该远程上尝试的任何 ssh 命令ssh user@remote dir
实际上会在远程(PC)计算机上调用该脚本。
(如果是 Perl 脚本,则可以调用system(your_command)
实际执行你需要的)
从该脚本中,您可以显示和控制(和调试)任何可能影响您尝试通过 ssh 执行的命令的结果的环境变量。
See .gitolite/src/gl-auth-command
作为(Perl)脚本的示例,您可以通过 ssh 调用(前提是它是在您的公钥之前声明的)authorized_keys
file)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)