Мой сервер 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-соединению. Оба метода ниже работали после того, как я отредактировал свои настройки.
Ответ 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 в другом месте вашей интрасети.