1

Считайте, что у меня есть три компьютера

  1. home мой компьютер дома
  2. work мой компьютер на работе
  3. server мой сервер

Я не могу подключиться из home к work используя ssh из-за брандмауэра моей компании. Но я могу ssh любой компьютер с работы. Например я могу ssh серверный компьютер с работы. То, что я не хочу делать, это подключиться к Интернету, используя work соединение (я хочу получить доступ к localhost рабочего компьютера). Я прочитал из какой-то общей суммы, что я могу сделать:

woork:~# ssh -D 4096 server

Но это только позволяет мне подключаться к Интернету с помощью сервера. Я хочу сделать обратное, но я не могу получить доступ к work с server .

Окончательный результат - открыть Firefox home и перейти на localhost work .

Какое решение для моего случая?

2 ответа2

1

Если вы можете установить исходящее ssh-соединение, то, вероятно, вы можете настроить обратный туннель для возврата (я не знаю, как у ИТ-специалистов есть способ запретить это, но вы никогда не узнаете).

work:~# ssh -fN -R 2222:localhost:22 server

Затем на сервере вы можете сделать это:

server:~# ssh -p2222 localhost

И вы будете волшебным образом подключены к порту SSH-сервера на вашей рабочей машине. По умолчанию порт 2222 связан только с адресом "localhost", поэтому запросы на подключение из дома не будут работать:

home:~# ssh -p2222 server  ;# this will not work

Вместо этого вы можете сделать это:

home:~# ssh server
server:~# ssh -p2222 localhost

или оба в одной команде, как это:

home:~# ssh -o ProxyCommand="ssh -W localhost:2222" server

Чтобы сделать все это проще, добавьте это в ваш .ssh/config дома:

Host work
    ProxyCommand ssh -W localhost:2222
    HostName server

... и сейчас:

home:~# ssh work

... просто поступит правильно

Можно создать обратную привязку туннеля, чтобы прокси-бизнес не был необходим, но тогда каждый хакер в мире также будет стучать в ваш туннель (думая, что порт 2222 нестандартен и, следовательно, безопасен, наивен). Неудачные попытки доступа будут отображаться в журналах "работа", ИТ узнает, и вы будете уволены. Конечно, один туннель, вероятно, является преступлением, но нет необходимости делать это очевидным.

0

Предположим, у вас есть

work:~#

home:~#

И работа:~ # это брандмауэр, который вы не можете контролировать

Когда вы пишете сервер, я вижу из контекста (сервер ssh -D 4096), что вы имеете в виду сервер SSH. (а не, например, VNC-сервер). Вы должны указать действительно, это понятнее. Обычно, если у вас есть SSH-сервер, он будет работать или дома. Он должен быть на компьютере с брандмауэром, которым вы можете управлять, то есть Home.

У вас также обычно есть обычный сервер, к которому вы хотите подключиться, и это обычно не сервер SSH. Хотя это может быть, есть вопрос с отличным примером того, где кто-то хотел бы, чтобы это было.

Возможно, вы можете объяснить больше, что такое сервер:~ #, но я собираюсь пропустить его пока, потому что это кажется ненужным, и неясно, что вы подразумеваете под этим, потому что если у вас есть сервер SSH, например, на работе, то Вы получите быструю работу:~ #

Итак, что вы делаете

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

home:~# START VNC server on e.g. 5901

home:~# START SSHD SERVER on e.g. port 80 <-- whatever the command is to start your sshd.

work:~# ssh -R 1234:127.0.0.1:5901 user@homeip -p 80

home:~# vncviewer 127.0.0.1:1234 

Дом видит работу.

на самом деле переключатели, которые нужно знать для SSH: -L, -R и -D

И если вы подключаете клиентскую программу к порту прослушивания таким образом, что клиентская программа находится на другом компьютере с вашим портом прослушивания, тогда она должна быть -R *:1234:127.0.0.1:5901 или 0.0.0.0:1234:127.0.0.1:5901

Хотя имейте в виду, что это что-то вроде VNC, но если вы сделали это для HTTP, вы сможете просматривать только один сайт. Существует -D, который, как вы видите, является локальным.

Некоторые люди дома и хотят получить доступ к серверу на работе, и этот сервер находится за брандмауэром, который они не контролируют.

Но если вам нужен доступ в Интернет, то вы на работе и хотите получить доступ к серверу дома.

Почему ты не можешь этого сделать?

Попробуйте запустить сервер SSHD через порт 80 или порт 443 дома и выполните work~:#ssh homeip -p 443

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .