![Туннелирование через SSH для использования VNC через шлюз](https://rvso.com/image/1344727/%D0%A2%D1%83%D0%BD%D0%BD%D0%B5%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D1%87%D0%B5%D1%80%D0%B5%D0%B7%20SSH%20%D0%B4%D0%BB%D1%8F%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20VNC%20%D1%87%D0%B5%D1%80%D0%B5%D0%B7%20%D1%88%D0%BB%D1%8E%D0%B7.png)
Кто-нибудь может подсказать мне в этой ситуации? У меня есть настольный компьютер (работающий на Ubuntu) в моей компании. У компании есть шлюз vpn, который помогает мне подключать мой настольный компьютер через ssh. Теперь я хочу удаленно управлять своим настольным компьютером дома с помощью VNC. Я уже установил xtightvncserver, и он уже запущен на моем настольном компьютере.
Как мне создать ssh-туннель между my-laptop и company-gw для использования vnc-client? Буду признателен за подробную информацию. Я хотел бы назвать свои компьютеры следующим образом.
company-pc - настольный компьютер на работе (vnc-сервер)
company-gw - vpn-шлюз в компании (на котором работает сервер openssh)
my-laptop - мой домашний ноутбук (клиент vnc)
решение1
Насколько я понял ваш вопрос, вы не можете подключиться с company-pc или company-gw к my-laptop, но вы можете подключиться с my-laptop к company-gw, и с company-pc к company-gw. Это верно? Я не знаю, о каком desktop-computer вы говорите.
Если на моем ноутбуке запущен sshd, попробуйте следующее:
С моего ноутбука, когда ты еще дома:
ssh -R 8022:localhost:22 myusername@company-gw
После входа в систему соединения, сделанные (откуда угодно) на порт 8022 на company-gw, будут перенаправлены на порт 22 на my-laptop. Оставайтесь в системе, когда идете на работу.
На работе, с корпоративного ПК:
ssh -L 5900:localhost:5900 -p 8022 myhomeusername@company-gw
На самом деле, когда вы это делаете, вы подключаетесь по ssh к my-laptop, поскольку порт 8022 на company-gw перенаправляется на порт 22 на my-laptop. Теперь вы перенаправляете порт 5900 на company-pc на порт 5900 на my-laptop (поскольку «localhost» в этой команде — это то, что my-laptop назвал localhost).
Теперь vnc в localhost. Это подключается к порту 5900 на вашем собственном company-pc, который перенаправляется через company-gw на my-laptop.
Если какой-либо из перенаправленных портов используется, просто попробуйте другой номер (8023 вместо 8022, 5901 вместо первого 5900), пока не найдете свободный.
решение2
Вот еще один обходной путь на случай, если у сервера нет доступа или прав администратора для включения/запуска sshd или если у вас нет пары пользователь/пароль на моем ноутбуке.
На моем ноутбуке запустите это:
ssh -R 8022:localhost:5900 gw-user@company-gw
Таким образом, каждое обращение с company-gw:8022 будет перенаправлено на my-laptop:5900.
На корпоративном ПК:
ssh -L 5900:localhost:8022 gw-user@company-gw
gw-user может быть разным в командах; важно, чтобы порт 8022 был доступен с обоих концов.