尝试使用svn checkout svn+ssh://USER@REPO .
我在调用%SVN_SSH%
时设置了-v
变量以包含plink.exe
标志,并且我得到的最后一个日志是Using username "USER".
之后,命令行无限期挂起。
我尝试使用TortoiseSVN和Intellij中的Subversion集成来尝试检出存储库时遇到类似的问题。
使用PuTTY连接服务器或直接在命令行中调用plink
没有问题。将-v
标记与plink
一起使用,系统会在使用svn checkout
挂起的行后立即提示我输入密码。
我有Windows 7 Ultimate SP 1,svn版本1.8.13,plink版本0.60。
答案 0 :(得分:0)
问题似乎是 使用对SVN使用公钥认证,以便能够在Windows中正确使用SSH。
网上有一些关于如何做到这一点的教程,但对我有用的是这一篇:http://support.suso.com/supki/SSH_Tutorial_for_Windows
我在其他教程中找不到的重要区别是使用chmod
命令来更改服务器上公钥文件的访问权限。
答案 1 :(得分:0)
现在说来已晚,但我遇到了类似的问题。
在我的情况下,问题出在plink.exe
的命令行中。
要正确解决所有问题,并且不要键入无限的登录名和密码:
pageant.exe
添加ppk密钥,避免手动输入密码。SVN_SSH
环境变量与-l "<username>"
参数一起使用,以避免手动输入用户名,并避免在svn存储库URL中使用用户名。SVN_SSH
环境变量与-batch
参数一起使用,以避免挂起脚本模式。生成的SVN_SSH
环境变量应如下所示:
SVN_SSH="<path-to-plink>/plink.exe" -batch -l "<USER>"
警告:SVN_SSH
变量中的路径中的反斜杠字符是转义字符,必须使用双精度字符对其进行自我转义或替换为正斜杠-{{1 }}。
但是请注意/
命令,因为git svn
变量可能会破坏git并显示以下消息:
SVN_SSH
在这种情况下,您必须使用Can't create session: Unable to connect to a repository at URL 'svn+ssh://...': Error in child process: exec of '' failed: No such file or directory at .../Git/mingw64/share/perl5/Git/SVN.pm line 310.
或ssh-pageant
工具中的msys
。
我还创建了另一篇文章,其中详细介绍了如何针对cygwin
和svn.exe
逐步执行此操作:How to use git-svn with svn+ssh url