Ошибка соединения SVN + SSH 210002, сетевое соединение неожиданно закрыто - PullRequest
6 голосов
/ 07 декабря 2009

ОК, у меня проблема с настройками SVN + SSH.

У меня SVN работает на сервере Linux и пытается подключиться с ноутбука Mac под управлением Snow Leopard. XCode пытается подключиться, но выдает сообщение «Ошибка 210002, подключение к сети неожиданно закрыто».

Ничто в Интернете, кажется, не объясняет. Я подключаюсь, используя xcode с HTTP, и он работает корректно для всех хранилищ.

Вот мой SVN vesrion:

svn, version 1.5.4 (r33841)
compiled Aug  7 2009, 01:44:11

Copyright (C) 2000-2008 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
  - with Cyrus SASL authentication
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme

В настоящее время он настроен на использование http, который работает без проблем.

http://username@example.com/svn/project

Я могу ssh на сервер, используя имя пользователя и пароль, и запускать такие команды, как

svn list file:///home/svn/project

и я получаю список содержимого этого проекта. Так что я не думаю, что это проблема с разрешениями.

Файлы на сервере находятся по адресу /home/svn/project.

.

Я пытаюсь заставить это работать в XCode. Не работает с использованием пути как / home / svn / project или просто / svn / project, как работает в http.

Но с ноутбука следующая команда выводит информацию, как и ожидалось:

svn list svn+ssh://username@example.com/home/svn/project
username@example.com's password:
branches
tags
trunk
Killed by signal 15.

Программа svnserve не запущена, но у пользователя, с которым я захожу, есть возможность ее запустить. Если я запускаю его в режиме переднего плана, это ничего не меняет.

Есть идеи, что мне не хватает. Очень хотелось бы иметь возможность запускать svn + ssh и отключать доступ по http.

Ура!

EDIT

Для получения дополнительной информации я обнаружил, что это только один репозиторий. Кажется, что все другие репозитории на сервере работают правильно с SVN + SSH.

Кажется, это ошибка XCode, но я точно не знаю. Это что-то о том, как XCode читает информацию о соединении SSH, которая может кэшироваться на компьютере.

Ответы [ 6 ]

4 голосов
/ 17 декабря 2009

Для подавления сообщений «прервано сигналом 15» установите SVN_SSH="ssh -q", как указано здесь .

1 голос
/ 19 мая 2011

Ни одно из приведенных здесь решений не работает с svn+ssh, но я мог подключиться и оформить заказ через https:

$ svn checkout --username myusername https://scm.gforge.inria.fr/svn/concha
1 голос
/ 08 июля 2010

Есть ли на вашем сервере брандмауэр и, если да, ограничивает ли он количество попыток SSH-соединения, например, описанным способом здесь ? Мы столкнулись с точно такой же проблемой: сбросить соединение для svn checkout, но не для svn ls, более svn+ssh://. Мы изменили настройки подключения на брандмауэре, чтобы сделать его более мягким, позволяя увеличивать число подключений в минуту, и это сразу же решило наши проблемы. Кажется, что SVN очень агрессивен в инициировании соединений во время определенных операций, и в меньшей степени для других.

1 голос
/ 08 декабря 2009

То, что «убит по сигналу 15», является подсказкой того, что что-то не так, даже если вы используете командную строку. Я помню, как решал ту же проблему, но не помню точную причину. Я думаю, что это было связано с тем, как я обрабатывал свой нестандартный ssh-порт и имел другое имя пользователя на локальном компьютере и на удаленном сервере.

Есть ли у вашего хоста svn нестандартный порт ssh и / или другое имя пользователя? Я перешел от использования переменной SVN_SSH, чтобы установить порт, чтобы поместить правильную запись в мой файл .ssh / config, в котором указаны имя пользователя и порт для соединения ssh.

Host example.com
  User username
  Port port

Я не уверен, уважает ли xcode ваш .ssh / config.

0 голосов
/ 24 января 2011

Вот как я это исправил (в Mac OS X, но исправление должно работать на любом клиенте).

Эта конкретная проблема возникает, когда вы используете нестандартный порт (скажем, 12001 для примера) для вашего SSH-сервера.

Очевидно, что клиент 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
0 голосов
/ 10 ноября 2010

У меня была такая же проблема с "Убито сигналом 15.", кстати. Добавление хоста, пользователя и порта к .ssh/config не решило эту проблему.

OSX 10.5 / 10.6 не документирует флаг -q (поэтому, по крайней мере, я долгое время игнорировал этот совет, как предложил sl), но он работает на OSX 10.5 (конечно, на 10.6, но У меня его нету) В ~/.subversion/config я добавил

ssh = $SVN_SSH ssh -q -o ControlMaster=no

где-то в строке 55 (если у вас все еще свежо из коробки, возможно, там есть строка с комментариями, очень похожая на эту). -o ControlMaster=no имеет дело с другой настройкой ssh, которая у меня есть, в противном случае это полностью нарушается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...