Доступ к хранилищу Subversion с 2 прыжками по протоколу svn+ssh

Мой сервер 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 требуется один дополнительный прыжок

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

2 ответа

Решение

Поместите что-то вроде этого в ваш файл.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 имеет подстановочный хост и использует%h в команде netcat. Очень полезно, когда вы хотите прокси для всех ящиков в производственной среде, через которые вам нужно пройти через DMZ.

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

   $ svn co svn+ssh://MYHOST:3906/svn/trunk/ что угодно

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

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

Другие вопросы по тегам