svn结账时“网络连接意外关闭”

时间:2010-09-05 02:36:17

标签: svn ssh openssh

当我尝试结帐时:

svn checkout svn+ssh://serveradmin%foo@foo.com/home/87292/data/svn/repository/trunk .

我得到了这个(无用的)错误:

  

svn:网络连接意外关闭

发生了什么事?

15 个答案:

答案 0 :(得分:9)

由于身份验证失败,可能会发生这种情况。您可能已缓存与您尝试访问的站点不匹配的凭据。您可能需要在站点上注册SSH密钥。

正如下面的notalbert建议的那样,使用SVN_SSH标志来获取详细模式中的详细错误

export SVN_SSH="ssh -v "

您可能会在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.

从文件~/.ssh/known_hosts

中删除属于您的svn服务器IP地址的行条目,在我的情况下是192.168.1.107

答案 1 :(得分:9)

行。以下是我修复此问题的方法(在Mac OS X上,但修复程序应该适用于任何客户端)

当您为SSH服务器使用非标准端口(例如,假设为12001)时,会出现此特定问题。

显然,SVN客户端在命令行上给出端口地址时会遇到语法错误,如下所示:

svn list svn+ssh://username@domainname.com:12001/home/username/svn/myproject

因此,要解决这个问题,您需要为SSH创建一个客户端配置文件,如下所示:

cd ~
cd .ssh
vi config (create a config file like the one that follows)
:w
:q

位于〜/ .ssh / config中的配置文件:

Host domain.com
User username
Port 12001

然后,发出你的svn + ssh命令,没有像这样的端口:

svn list svn+ssh://username@domain.com/home/username/svn/myproject

就是这样!

希望有所帮助。 瑞克

答案 2 :(得分:8)

我怀疑乔尔和安迪是对的。

您可以使用ssh verbose标志来帮助解决这些问题。

export SVN_SSH="ssh -v "
svn checkout svn+ssh://serveradmin%foo/blah blah blah

答案 3 :(得分:7)

我有同样的错误,但提交修订版。清除.ssh / known_hosts修复了问题,因为SSH密钥已过时。

答案 4 :(得分:2)

我正在连接到本地的svn,这从某些角度发生在我身上(实际上是定期发生)。

我发现冲浪的所有参考文献都提到了与SSH相关的内容。 SSH也可能是我的问题的根源,但我设法通过杀死一些svnserve进程来克服这个问题。

我可以这样做,因为我知道我的服务器的用途是什么,但是不知道在服务器中执行此操作的相关性更加一致。

答案 5 :(得分:0)

如果您正在使用Putty,它会保存您的登录凭据,因此当您尝试签出时,可能使乌龟产生以下错误:连接意外关闭。如果发生这种情况,请打开putty并单击默认设置,以便加载主机名。清除主机名并保存。这对我有用......

答案 6 :(得分:0)

我遇到这个“svn:网络连接意外关闭”错误的另一个原因是/ var已满,这导致svn无法向磁盘写入任何内容。所以在继续上述步骤之前,可能先检查一下你的磁盘空间(du -m)?

答案 7 :(得分:0)

确保您的svn网址中没有虚假的冒号

不应该是:

    user@host.com:/path/to/repo 
                 ^
                 spurious colon should be removed  

但应该是:

    user@host.com/path/to/repo

答案 8 :(得分:0)

就我而言,在使用svn + ssh时,错误源于gforge用户没有主目录。我手动添加它们,问题就消失了。

答案 9 :(得分:0)

检查防火墙设置。我有ConfigServer Security&防火墙(CSF)安装在我的服务器上,阻止了ssh + svn端口2222.我允许端口并能够执行更新。

答案 10 :(得分:0)

我在linux服务器上设置ssh后也遇到了这个问题。对我来说问题是我用puttyGen创建了密钥。首先必须使用.ppk文件格式的puttyGen转换公钥文件。之后,一切都像魅力一样。

答案 11 :(得分:0)

您好我在OS X Yosemite遇到同样的问题。 我读了所有这些答案,@ notalbert评论是要解决的路径。 似乎OS X无法处理svn + ssh方案,因此添加

export SVN_SSH="ssh "

to /Users/username/.bashrc是我的决议。

感谢。

答案 12 :(得分:0)

其他可能的原因是服务器中实际上没有安装subversion(例如,存储库已移动到新服务器)。

答案 13 :(得分:0)

如果您已设置.bashrc来引用SVN_SSH中的密钥,但正在使用sudo执行svn,则该命令将不会使用您的SVN_SSH 1}}你可能会收到此错误。

我正在使用sudo检查我没有创建权限的新目录,正确的方法是sudo mkdir whatever,然后设置正确的权限以允许您编写它。

答案 14 :(得分:0)

E210002:网络连接意外关闭

我一直在使用ssh尝试使用默认端口22进行连接时遇到错误。在为主机指定正确的端口后问题已解决。