当我尝试结帐时:
svn checkout svn+ssh://serveradmin%foo@foo.com/home/87292/data/svn/repository/trunk .
Run Code Online (Sandbox Code Playgroud)
我得到这个(无用的)错误:
svn:网络连接意外关闭
发生了什么?
Joe*_*son 10
这可能是由于身份验证失败而发生的.您可能已缓存与您尝试访问的站点不匹配的凭据.您可能需要在站点上注册SSH密钥.
正如下面的notalbert所建议的那样,使用SVN_SSH标志来获取详细模式下的详细错误
export SVN_SSH="ssh -v "
Run Code Online (Sandbox Code Playgroud)
你可能会看到这样的输出stderr
,
Add correct host key in /home/jcrawford/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/jcrawford/.ssh/known_hosts:4
remove with: ssh-keygen -f "/home/jcrawford/.ssh/known_hosts" -R 192.168.0.107
ECDSA host key for 192.168.0.107 has changed and you have requested strict checking.
Host key verification failed.
Run Code Online (Sandbox Code Playgroud)
从文件中删除属于您的svn服务器IP地址的行条目,在我的例子中是192.168.1.107 ~/.ssh/known_hosts
小智 9
好.以下是我修复此问题的方法(在Mac OS X上,但修复程序应该适用于任何客户端)
当您使用非标准端口(例如,假设为12001)时,SSH服务器会出现此特定问题.
显然,SVN客户端在命令行上给出端口地址时遇到语法错误,如下所示:
svn list svn+ssh://username@domainname.com:12001/home/username/svn/myproject
Run Code Online (Sandbox Code Playgroud)
因此,要解决此问题,您需要为SSH创建一个客户端配置文件,如下所示:
cd ~
cd .ssh
vi config (create a config file like the one that follows)
:w
:q
Run Code Online (Sandbox Code Playgroud)
位于〜/ .ssh/config中的配置文件:
Host domain.com
User username
Port 12001
Run Code Online (Sandbox Code Playgroud)
然后,发出你的svn + ssh命令没有这样的端口:
svn list svn+ssh://username@domain.com/home/username/svn/myproject
Run Code Online (Sandbox Code Playgroud)
而已!
希望有所帮助.干草堆
小智 8
我怀疑乔尔和安迪是对的.
您可以使用ssh verbose标志来帮助解决这些问题.
export SVN_SSH="ssh -v "
svn checkout svn+ssh://serveradmin%foo/blah blah blah
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
42329 次 |
最近记录: |