Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Доступ к репозиторию Subversion с 2 переходами по протоколу svn + ssh

Автор вопроса: ironic_usernameОтветов: 2

Мой сервер Ubuntu Subversion не доступен напрямую из Интернета, 192.168.1.2

Моя общедоступная машина Ubuntu доступна через DMZ по адресу 192.168.1.1.

Я настроил переадресацию портов с 192.168.1.1:3906 на 192.168.1.2:3906, но я понятия не имею, как это будет работать с svn + ssh, поскольку для доступа к моему серверу Subversion требуется один дополнительный переход

edit: Для тех, кто сталкивается с той же проблемой, моя путаница возникла из-за того, что я пытался перенаправить на свой сервер SVN (запускал демон на порту '3906'), но доступ к вашему серверу SVN через SSH полностью отличается от доступа к вашему серверу SVN, на котором запущен демон (3906). Вы должны относиться к этому как к типичному ssh-соединению. Оба метода ниже работали после того, как я отредактировал свои настройки.

sshsvn

Ответы

Ответ 1 · рейтинг 3 · Epsilon Prime

Поместите что-то вроде этого в свой файл .ssh / config:

Host subversionserver
        Host=192.168.1.1
        ProxyCommand = ssh 192.168.1.1 /usr/local/bin/nc -w 60 192.168.1.2 %p
        ForwardX11 = no
        User = myusername
        ForwardAgent = yes

Затем вы сможете подключиться к своему ssh-серверу с помощью всего:

ssh subversionserver

Обычно вы входите в свой общий ящик и запускаете команду netcat, как только войдете. Ваше желаемое SSH-соединение с сервером Subversion будет проходить через соединение netcat.

Очевидно, вам понадобится где-нибудь на вашем компьютере netcat.

Версия в моем файле .ssh / config имеет подстановочный знак Host и использует% h в команде netcat. Очень полезно, когда вы хотите прокси-сервер для всех ящиков в производственной среде, к которым вам нужно пройти через DMZ, чтобы добраться до.

Ответ 2 · рейтинг 3 · Grumdrig

Ваш sshd прослушивает порт 3906 (а не стандартный порт 22)? В таком случае вы сможете подключиться, например, к

   $ svn co svn+ssh://MYHOST:3906/svn/trunk/whatever

Если нет, перенаправьте порт 3906 на .1 на 22 на .2.

Или перенаправьте порт с 22 на .1 на 22 на .2, если вам не нужно использовать ssh в другом месте вашей интрасети.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы