我在一个学术环境中工作,在那里我们提供了各种ssh可访问的计算资源。 我们也提供了git仓库托pipe,我们需要ssh来读取/写入仓库。
我们对OS X和Linux用户的指导相对简单,最重要的是,与OS X和大多数现代Linux发行版一致, OpenSSH是开箱即用的,更重要的是, ssh-agent被预先configuration为在桌面会话处于活动状态时运行。 我们通常鼓励人们把密码分配给他们的密钥,所以没有身份validation代理人的生活会很快变得烦人。
目前,我们针对Windows用户的解决scheme在整体上更为分散和复杂。 从历史上看,人们一直在使用PuTTY ,但是这需要额外的步骤来生成兼容OpenSSH的密钥。 这也使得使用git命令行工具变得更加困难 – 虽然不是,我意识到,不可能的是,当与ssh可访问的存储库交互时,它最适合OpenSSH。
我们只想简单的安装msysgit ,但是我们正在寻找一种将ssh-agent集成到Windows桌面环境中的好方法。 最常见的解决scheme就是通过.bashrc条目来启动代理,但这看起来好像很不好,这意味着我们必须通过在Windows下编辑.bashrc的过程来引导大部分非技术用户。
另一个复杂的问题是, WinSCP经常被用作文件传输工具 – 当然这不会与ssh-agent 。 它会与来自PuTTY伙计的pagent交谈,但是pagent不会说ssh-agent所以它不能从命令行工作。
其他人做了什么来为不同平台上的用户提供一致的环境? 你刚刚抛出手,决定为Windows用户维护一套单独的文档?
UPDATE
我发现两个程序在OpenSSH和pagent之间起到垫片的作用。 你有什么经验,无论是charade还是ssh-pagent ?
我会build议使用Cygwin并通过它安装SSH。 然后你可以设置ssh-agent,甚至用shell脚本自动configuration它。 这样,你就可以使用SSH,就像你在Linux上使用SSH一样,而不是使用PuTTY或者msysgit。 此外,您还可以使用shell脚本和Cygwin自动化事物。 这里只是我发现使用Cygwin的许多不同的ssh-agent脚本之一。 另外,我发现Cygwin的安装和安装非常灵活。 由于它只是从一个镜像下载文件并将其放在C:驱动器的根目录下,所以我几乎肯定你可以把这个安装文件分发给其他人,只要给他们一个目录的副本即可。 我自己也没有testing过这个部分
我不熟悉msysgit,但它可以使用PuTTY的plink ? 如果你不知道, plink是一个简单的命令行ssh客户端,它可以使用Pageant进行身份validation。
更新:是的,您应该为Windows用户提供不同的文档。 (除非你认为Windows用户将会使用OpenSSH进行git访问以外的其他function)。我认为你试图强制一个不存在的等价关系。 在我看来,你正在努力通过加大难度来“使[更简单]”。