Назад | Перейти на главную страницу

Сервер SVN с протоколом svn + ssh через настраиваемый порт

Я запускаю Ubuntu 12.04.2 LTS в качестве виртуальной машины, и на передней панели также есть vShield с включенным межсетевым экраном и некоторыми модификациями NAT. В моей конфигурации VPS есть и другие машины, но это не важно, правильно знать. Важно то, что я изменил порт SSH на Ubuntu с 22 на 765, а на vShield я сделал перевод порта с 424 на 765. Брандмауэр имеет все необходимые разрешения для SSH (и SVN).

Итак, я делаю SSH-соединение вот так

kopparberg:Webpage marek$ ssh marko@91.***.***.69 -p 424

и это работает как шарм.

В чем проблема? Я пытаюсь настроить сервер SVN на Ubuntu, следуя этому руководству http://odyniec.net/articles/ubuntu-subversion-server/.

Если проверить мой репозиторий "Веб-страница" по протоколу SVN

kopparberg:Webpage marek$ svn checkout svn://91.***.***.69/Webpage --username svnuser

работает как надо.

Что я действительно хочу сделать, так это оформить заказ svn + ssh протокол. Я безуспешно пробовал много разных способов.

kopparberg:Webpage marek$ svn checkout svn+ssh://91.***.***.69:424/usr/local/svn/repos/Webpage --username svnuser
svn: To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file.
svn: Network connection closed unexpectedly

Еще одна попытка ...

kopparberg:Webpage marek$ svn checkout svn+ssh://91.***.***.69/usr/local/svn/repos/Webpage -p 424 --username svnuser
svn: invalid option character: p
Type 'svn help' for usage.

Я также добавляю ssh = ssh -p 424 к /user/marek/.subversion/config файл.

kopparberg:Webpage marek$ svn checkout svn+ssh://91.***.***.69/usr/local/svn/repos/Webpage --username svnuser
marek@91.***.***.69's password
Permission denied, please try again.: 

Ни один из моих паролей не верен.

Можно ли оформить заказ с svn + ssh протокол через настраиваемый порт без изменения файла конфигурации?


РЕДАКТИРОВАТЬ: я обнаружил, что должен использовать пользователя SSH, а не пользователя SVN, конечно. Но я использовал это совершенно неправильно. Вместо того --username подкоманда Я должен поставить свое имя пользователя перед IP-адресом.

kopparberg:Webpage marek$ svn checkout svn+ssh://marko@91.***.***.69/usr/local/svn/repos/Webpage

Это выглядит намного лучше и работает! Я все еще ищу решение, в котором мне не нужно будет редактировать файл конфигурации перед оформлением заказа. Другими словами, я хотел бы изменить порт SSH на лету.

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

Во-первых, определитесь с вашим новым портом SSH по умолчанию. Это повлияет на SSH в целом (например, когда вы хотите подключиться к серверу через SSH, используя командную строку, замазку и т. Д.). Порт не может быть изменен ТОЛЬКО для SVN, если вы не хотите вызывать несколько экземпляров сервера SSHD, что выходит за рамки исходного вопроса).

Итак, если предположить следующее:

  • Мы хотим, чтобы все выполнялось через порт 123456
  • IP-адрес вашего сервера 192.168.1.100
  • Ваш маршрутизатор / брандмауэр открыл порт 123456
  • В вашем маршрутизаторе / брандмауэре настроена переадресация портов для внешнего порта 123456, маршрутизация на внутренний порт 123456 для хоста 192.168.1.100

Сторона клиента:

В любом случае, сначала измените <~ / .subversion / config> на клиентской машине и под строкой с названием [tunnels]введите следующую строку:

ssh = ssh -p 123456

На стороне сервера:

Во-первых, вам нужно настроить новый порт SSH по умолчанию. На своем сервере SVN отредактируйте (в случае Ubuntu) файл конфигурации SVN SERVER (обратите внимание на «d» после «SSH»): sudo vi / etc / ssh / sshd_config

Найдите строку, начинающуюся с «Порт» (по умолчанию это «Порт 22»), и измените «22» на «123456». Сохраните и закройте файл. Теперь перезапустите сервер SSHD: sudo restart ssh

Предполагая, что ваша настройка SVN работает так, как вы уже описали выше, все готово. Если вы настаиваете на переводе порта, а не просто сохраняете его в неизменном виде в качестве правила одиночной пересылки-пересылки, просто измените порт SSH, используемый на стороне сервера, и все готово. Я успешно протестировал указанную выше настройку на клиенте за пределами моей локальной сети:

svn --username megaman ls svn+ssh://megaman@DrWileysFortress.dyndns.org/usr/local/svn/repos/private

Надеюсь это поможет!