Доступ к хранилищу 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 где-либо еще в вашей интрасети.