Я ищу маршрут порта для VNC обратно в мой дом здесь. Я должен перепрыгнуть через один хост, чтобы затем перейти к моей реальной рабочей машине.
sittinghere
будет моей местной домашней машинойhopper
будет промежуточным прыжком мне нужно сделатьoverthere
будет удаленная рабочая машина
Я могу сделать это с SSH на мою рабочую машину:
ssh -t hopper "ssh -t overthere"
Я хотел бы использовать переадресацию портов для перенаправления удаленного порта 5900 на overthere
локальный порт 5900 вкл sittinghere
. Тем не менее, я предпочел бы иметь возможность делать это без привязки к открытому порту, так hopper
как любой на этой машине сможет подключиться к моему VNC-соединению.
Могу ли я безопасно перенаправить этот порт на мой локальный компьютер, и никто не сможет получить к нему доступ hopper
?
ssh
port-forwarding
Нафтули Кей
источник
источник
Ответы:
Использование собственной способности SSH для переадресации портов. Из
sittinghere
выполнить:Укажите клиенту VNC,
localhost:5900
и трафик будет проходитьoverthere:5900
через соединение SSH, установленное наhopper
источник
hopper
, а затемhopper
перенаправляет весь трафикoverthere:5900
. Еслиoverthere:5900
прослушивает0.0.0.0
или данный интерфейс, то он будет работать, но не если он прослушивает127.0.0.1
.Я использовал некоторые SSH-
~/.ssh/config
хаки, чтобы это произошло:Что это делает , что , когда я пытаюсь подключиться к
ssh overthere
сsittinghere
, он подключается к ,hopper
а затем предоставляет интерфейс подключения SSH к порту 22 наoverthere
(то есть: SSH наoverthere
).Это имеет некоторые удивительные побочные эффекты:
Все работает потрясающе, и, насколько я могу судить, 5900 не открывается
hopper
, а только пересылается напрямую изoverthere
вsittinghere
.источник
apt-get install netcat-traditional -y
). Затем вы должны явно указатьnc
тип в файле конфигурации (заменивnc
наnc.traditional
).Вы можете перенаправить порт с
sittinghere
наoverthere
порт SSH черезhopper
. Затем вы можете использовать этот порт дляoverthere
прямой связи сsittinghere
. Во втором сеансе SSH вы можете пересылать VNC или любые другие порты, которые вам нравятся, покаhopper
видит только зашифрованный сеанс SSH.Первая сессия SSH:
Теперь скажите клиенту SSH , как он может достигнуть
overthere
путем добавления этой конфигурации , чтобы~/.ssh/config
наsittinghere
Вторая сессия SSH:
Или просто обычный интерактивный сеанс SSH без туннеля порта VNC:
Если вы не хотите добавлять строки,
~/.ssh/config
вы все равно можете сказать, как подключиться к нимoverthere
из командной строки:... но без
HostKeyAlias
SSH не будетoverthere
правильно проверять отпечаток ключа.Все командные строки должны быть запущены из
sittinghere
.Кстати, я думаю , что вы , вероятно , не нужно использовать
ssh
«s-t
вариант.источник
Сначала подключите бункер при прокладке туннеля между рабочим и домашним ПК.
тогда сделайте ssh ro overthere с туннелем vnc
Теперь вы можете связаться с VNC. Кстати измени конфигурацию vnc, чтобы слушать localhost
источник
Если вы используете клиент VNC
vncviewer
из командной строки, вы можете использовать-via
коммутатор, чтобы сообщить ему о туннелировании черезuser@host
до подключения к VNC-серверу другого хоста.пример
Вы также можете использовать
vinagre
для подключения через SSH туннель, как это происходит через графический интерфейс. Для этого настройте ваше подключение аналогично этому через диалог подключения вvinagre
:В результате ваше соединение будет установлено через туннель SSH.
Ссылки
источник
Следующая команда также должна работать отлично
Он был протестирован с дополнительным параметром для подключения сервера PostgreSQL
postgres-server
к настроенному порту (-p
коммутатору), а также с использованием настроенного имени пользователя.Как видите, решение простое и не требует каких-либо изменений конфигурации ssh или каких-либо промежуточных шагов.
источник