SSH туннель к компьютеру и создать еще один туннель третий сервер - PullRequest
0 голосов
/ 19 сентября 2010

Мне нужно выполнить какую-то работу на сервере, к которому у меня нет прямого доступа.У меня есть доступ к сети моей компании (через VPN).Если бы я был в этой сети, я мог бы получить доступ к серверу напрямую.Но по какой-то причине, когда я нахожусь на vpn, я не могу получить доступ к серверу напрямую.

Итак, мне нужно подключиться по ssh в промежуточный ящик Ubuntu, а затем создать туннель ssh из этого ящика всервер.

Затем я могу выполнить свою работу на своем ноутбуке и отправить ее через локальный туннель, который указывает на чужой туннель (на моем компьютере с Ubuntu), который идет на сервер.

Но я не знаю, как создать туннель, который создает еще один туннель для третьего сервера.

Есть идеи?

Спасибо, Скотт

Ответы [ 2 ]

1 голос
/ 19 сентября 2010

Чего ты пытаешься достичь?Если вы просто хотите получить оболочку на сервере, тогда ssh в поле Ubuntu и затем ssh оттуда на сервер.

Если вы хотите получить доступ к какому-либо другому сетевому ресурсу на сервере, вы хотите переслатьпорт от сервера (где вы не можете получить к нему) в окно Ubuntu (где вы можете).Посмотрите на опцию -L в ssh.

Редактировать:

Копирование файлов на сервер:

tar c path/* | ssh ubuntuName 'ssh serverName "tar x"'

Копирование данных обратно:

ssh ubuntuName 'ssh serverName "tar c path/*"' | tar x

Очевидно, вам нужно изменить ubuntuName, serverName и path/* на то, что вы хотите.Чтобы использовать rsync, вам нужна опция -E и тот же прием для помещения одной команды ssh внутрь другой.После прочтения вашего комментария я бы сказал, что наиболее общий ответ на ваш вопрос заключается в том, что хитрость заключается в том, чтобы ssh выполнял команду на целевой машине.Это можно сделать, указав команду в качестве аргумента после имени машины.Если вы используете ssh в качестве целевой команды для выполнения ssh, то вы получите двухшаговое поведение, которое вы ищете.Тогда нужно просто поиграть с кавычками, пока все не будет корректно экранировано.

0 голосов
/ 19 сентября 2010

Это просто двойной порт вперед.Переадресуйте порты с ПК в окно ubuntu, затем в окне ubuntu перенаправьте эти порты назначения в конечную конечную точку.Прошло много времени с тех пор, как я запустил командную строку ssh (попал в ад Windows :), поэтому я не могу дать нужную вам командную строкуДругая возможность заключается в использовании прокси-способности SOCKS, встроенной в SSH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...