Рейтинг:1

Как перенаправить на сервер обратного туннеля с другим портом?

флаг jp

Настраивать:
Сервер A (размещен в частной сети, требуется доступ к VPN)
Сервер B (общедоступный)
Сервер C (вы можете предположить, что это мой собственный macbook)

я использую автосш настроить обратное туннелирование на сервере А
с этой командой autossh -f -T -M 20002 -o "ServerAliveInterval 10" -o "ServerAliveCountMax 2" -N -R 19999:localhost:22 user@server_b

Затем на моем сервере B
я могу бегать ssh локальный хост -p 199999 для подключения моего сервера A.
Сервер B также включил порт ssh для 22 и 2022 в /etc/ssh/sshd_config

Постановка задачи:
Как использовать команду ssh user@server_b -p 2022 в Сервер С перенаправить доступ к Сервер А туннель из Сервер Б?

Большая фотография
macbook -- ssh (порт 2022) --> сервер B -- перенаправить ssh ---> сервер A

** должен уметь выполнять задачу scp

Marc Vanhoomissen avatar
флаг in
Здравствуйте, не могли бы вы указать, где находится Ubuntu в вашей установке и какая у вас версия?
Zi Gang avatar
флаг jp
@MarcVanhoomissen Убунту 20
Marc Vanhoomissen avatar
флаг in
Все 3 сервера работают под управлением Ubuntu?
Zi Gang avatar
флаг jp
Сервер A и сервер B - это Ubuntu 20. Сервер C - это просто пример. Сервер C - моя отправная точка для подключения к серверу A. Сервер C - это база unix (macbook)
Рейтинг:2
флаг us
  1. Для автоматического использования обратного туннеля рекомендуется использовать автосш оказание услуг.
  2. Я рекомендую выполнить следующие шаги:
  3. Измените ключи между серверами, которые вы хотите туннелировать.
    • сохраните свой сервер A public_key на своем сервере B /home/пользователь/.ssh/authorized_keys файл.
    • сделать первое подключение вручную с помощью ssh пользователь@серверB и видим, что соединение работает нормально.
    • сделайте то же самое с сервером C - сохраните public_key вашего сервера B на вашем сервере C /home/пользователь/.ssh/authorized_keys файл.
    • проверьте соединение вручную.
  4. Теперь вам нужно перенаправить нужные порты с помощью автосш - но сначала давайте проверим это вручную:
    • подключиться к вашему серверу A с локального компьютера с помощью ssh пользователь@серверA
    • на вашем сервере Оболочка - порт пробросить ssh подключение с сервера А к серверу Б с ssh -R <portX>:localhost:22 user@serverB
    • на вашем сервере B shell - порт вперед серверA ssh туннель с ssh -R <портY>:localhost:<портX> пользователь@серверC.
    • теперь откройте другой терминал на локальном компьютере (не закрывая существующий терминал) и попробуйте использовать перенаправленный туннель с ssh user@serverC -p <portY> это должно соединить вас с сервером A через серверы C и B в определенном порядке.
  5. Теперь, когда туннель работает нормально, мы можем автоматизировать процесс, создав автосш сервис (вот тот, который я использую):
[Ед. изм]
Description=Оставляет открытым туннель к 'VPS'
After=network-online.target

[Оказание услуг]
Пользователь=корень
ExecStart=/usr/bin/autossh -M portZ -i /root/.ssh/id_ed25519 -o "ExitOnForwardFaliure=yes" -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -N -R portX:127.0.0.1:22 [email protected] 
Среда = AUTOSSH_GATETIME = 0
Перезапустить = всегда
Рестартсек=3
Стартлимитинтервалсек=0
StartLimitAction=перезагрузка
StartLimitBurst=0
[Установить]
WantedBy=многопользовательская.цель

Теперь, если вы хотите скопировать что-то на свой компьютер с помощью SCP с сервера A просто запустите команду на локальном терминале ПК:

  • scp -P <portY> user@serverC:/path/path/filename localpcpath/path/.

Примечание: мой ответ предполагает, что вы уже создали ssh-ключи и что твой sshd_config файл настроен хорошо.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.