SSH тунель через кілька переходів за допомогою шпаклівки


13

У мене є ситуація, коли я хочу підключитися до машини Linux, що працює під управлінням VNC (давайте назвемо це VNCServer), яка знаходиться за двома послідовними машинами Linux, тобто, щоб запустити в VNCServer, мені доведеться ssh у Gateway1 зі свого ноутбука, потім з оболонки Gateway1 Я ssh в шлюз2, а потім з цієї оболонки нарешті ssh у VNCServer. Я не можу змінити дизайн мережі та потік доступу Ноутбук -> Шлюз1 -> Шлюз2 -> Сервер. У мене немає привілеїв root на Gateway1, і всі порти, крім 22 та 5901, закриті.

Чи є спосіб запустити переглядач VNC на своєму ноутбуці та отримати доступ до VNCServer? Я розумію, що це може бути зроблено за допомогою функцій тунелювання ssh, і я маю шпаклівку на своєму ноутбуку Windows (вибачте, що на робочому ноутбуці не можуть бути встановлені Linux або Cygwin тощо). Будь-яка допомога буде дуже вдячна, оскільки це полегшило б моє життя!

Відповіді:


19

Putty підтримує ssh тунелі, якщо ви розгорнете дерево Connection, SSH, ви побачите запис для тунелів.

Місцеві тунелі створюють відкриття порту localhost на вашій машині Windows, який віддаляється до вказаної вами ip-адреси та порту. Наприклад, коли я намагаюся перенести RDP на робочий стіл в своєму будинку, я, як правило, вибираю випадковий локальний порт, як-от 7789, а потім ставити локальну ip-адресу робочого столу (1.2.3.4.45389) як віддалений господар. Обов’язково натисніть "Додати", а потім "Застосувати". У цей момент, коли ви rdp до 127.0.0.1:7789, ви підключитесь до 1.2.3.4:40389 протягом сеансу шпаклівки.

Ось тут і приходить забава. Якщо ви потім встановите тунель портів на своєму проміжному вікні, встановивши локальний порт, який ви вказали як віддалений порт у шпаклівці, ви зможете перейти через свою шпаклівку, через проміжний ящик остаточне місце призначення. Вам все одно потрібно буде виконати кілька підключень ssh, але ви зможете перетинати vnc або rdp безпосередньо з системи Windows після встановлення, що я вважаю, що ви хочете зробити.

ПРИКЛАД

  1. Перейдіть до панелі тунелів у програмі Putty (З'єднання-> SSH-> Тунелі, доступ до яких можна отримати з контекстного меню, якщо сеанс ssh вже активний, або на початковому екрані підключення при запуску шпаклівки)
  2. Створіть тунель з локальним джерелом 15900 та віддаленим джерелом 127.0.0.1:15900
  3. Підключіть (якщо він ще не підключений) до шлюзу1.
  4. У шлюзі1, ssh -L 127.0.0.1:15900:VNCServerIP:5900 користувач @ Gateway2
  5. Після того, як ssh для Gateway2 буде запущено, спробуйте перейти в режим vnc до 127.0.0.1:15900 - тепер ви повинні побачити екран VNC на далекій стороні!

ДОБАВЕНИЙ БОНУС - це не багато людей знає, але цей процес також може бути використаний і для проксі IPv6 / IPv4 трафіку. SSH не хвилює, який протокол він використовує для тунелів, тому теоретично ви можете отримати доступ до IPv6 тільки хостів із системи лише для IPv4, враховуючи, що ssh-сервер є подвійним стеком (має адреси IPv4 та IPv6.)


15

Існує альтернатива, якщо ви хочете використовувати PuTTY для обох хмелів. У цьому прикладі ми переходимо від шлюзу №1 (10.0.1.123) до шлюзу №2 (10.0.1.456) до порту 80 10.0.1.789.

  1. Спочатку створіть перехід до шлюзу №1. Спочатку встановіть з'єднання з першим сервером. Налаштуйте тунель на другий шлюз у З'єднанні> SSH> Тунелі. У цьому прикладі ми пересилаємо порт 2222 на другий шлюз.

    підключити до сервера

    встановити тунель

  2. Тепер ми встановимо другий скачок. Ми пройдемо тунель через перший шлюз до наступного шлюзу та переадресуємо порт налаштування на другий шлюз. Підключення до localhost на порту 2222. Це дозволить пройти тунель через працююче ssh-з'єднання до другого переходу. У зв'язку з цим ми встановлюємо порт вперед від порту 3333 до 10.0.1.789.

    введіть тут опис зображення

    введіть тут опис зображення

  3. Тепер відкрийте браузер і перейдіть до 127.0.0.1:3333, і ви пройдете тунель через два SSH-з'єднання до 10.0.1.789:80


1
Чи є спосіб досягти цього за допомогою одного сеансу шпаклівки з двома тунелями, налаштованими в меню SSH -> Тунелі? Таким чином вам потрібно відкрити лише один екземпляр шпаклівки?
ulrich
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.