当我尝试结帐时:
svn checkout svn+ssh://serveradmin%foo@foo.com/home/87292/data/svn/repository/trunk .
我得到了这个(无用的)错误:
svn:网络连接意外关闭
发生了什么事?
答案 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
答案 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)
我一直在使用ssh尝试使用默认端口22进行连接时遇到错误。在为主机指定正确的端口后问题已解决。