Я запускаю 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, что выходит за рамки исходного вопроса).
Итак, если предположить следующее:
Сторона клиента:
В любом случае, сначала измените <~ / .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
Надеюсь это поможет!