2009-12-07 2 views
6

Хорошо, у меня проблемы с настройкой SVN + SSH.Ошибка подключения SVN + SSH 210002, неожиданно отключено сетевое соединение

У меня есть 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://[email protected]/svn/project 

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

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

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

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

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

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

svn list svn+ssh://[email protected]/home/svn/project 
[email protected]'s password: 
branches 
tags 
trunk 
Killed by signal 15. 

Программа Svnserve не работает, но пользователь я вход с имеет возможность запускать его. Если я начну его в режиме переднего плана, он ничего не изменит.

Любые идеи, что мне не хватает. Хотелось бы иметь возможность запускать svn + ssh и отключать HTTP-доступ.

Cheers!

EDIT

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

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

+0

В Ubuntu [ эта нить] [1] помогла мне. [1]: http://unix.stackexchange.com/questions/27143/how-to-configure-svn-ssh-with-ssh-on-non-standard-port – Gordak

ответ

1

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

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

Host example.com 
    User username 
    Port port 

Я не уверен, соблюдает ли xcode ваш .ssh/config.

+0

Это что-то вроде этого. У меня нет файла .ssh/config, но у меня есть файл .ssh/known_host. Я пробовал с другим репозиторием, и он работал над http, но хозяин там был www.example.com, а не только example.com, и у него была отдельная запись в известном файле хоста. Это дало ту же ошибку, но каким-то образом я получил ее для работы с изменением хоста только на example.com. Но он работает, даже если в другом репозитории обнаружено убитое сигналом 15. Спасибо за ваш ответ. Я не знаю, в чем проблема, и я хотел бы разобраться в этом, но сейчас это не так срочно. – Michael

4

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

+0

Это правильный вариант, по крайней мере для Mac OS X. Я изменил в ~/.subversion/config из (в разделе туннелей): 'ssh = $ SVN_SSH ssh -o ControlMaster = no' to' ssh = $ SVN_SSH ssh - q -o ControlMaster = no' – carlosayam

1

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

+0

Я получаю эту проблему внутри сети. Похоже, маршрутизатор не помог. Я изменил использование https. – Michael

0

У меня была та же проблема с «Killed by signal 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, который у меня есть, что в противном случае нарушает это полностью.

0

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

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

Видимо клиент SVN испытывает синтаксических ошибок при введении адреса порта в командной строке, как этот:

svn list svn+ssh://[email protected]: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://[email protected]/home/username/svn/myproject 
1

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

$ svn checkout --username myusername https://scm.gforge.inria.fr/svn/concha 
Смежные вопросы