SSH, туннелирующий через busybox маршрутизатор

Когда я хочу сделать что-то вроде этого, что я использую diff:

diff $file_1 $file_2 > result.diff

Вам требуются только несколько минут для изучения синтаксиса result.diff :)

1
02.07.2013, 15:22
2 ответа

ssh -L то, что Вы ищете.

Позволяет рисуют изображение, которое имеет 4 общих хоста, A, B, X, Y.

  • A является машиной, которая имеет Ваш постоянный клиент, позволяет, говорят, сеть browswer
  • B является Вашей ближайшей локальной способной машиной SSH, которая могла бы совпасть с A.
  • X Ваша удаленная способная машина SSH
  • Y является машиной, размещающей сервис (позволяет, говорят, веб-сервер), Вы хотите получить доступ от A. Y может быть тем же хостом как X.

На B:

ssh -Nn -L 8080:Y:80 username@X

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

B:8080 <--- encrypted over ssh ---> X < ---- unencrypted ----> Y:80

Затем A может соединиться с B:8080 и видеть Y:80:

A <--- unencrypted ---> B:8080 <--- encrypted over ssh ---> X < ---- unencrypted ----> Y:80

Если A является той же машиной как X, и B является той же машиной как Y, то незашифрованные участки никогда на самом деле пробегаются через реальную сеть; Ваши подключения веб-браузера к localhost:8080 (туннель запускаются); ssh сервер на X подключениях к localhost:80.

2
27.01.2020, 23:29

Я нарисовал несколько набросков

Машина, на которой вводится команда туннеля ssh, называется »ваш хост« .

ssh tunnel starting from local


ssh tunnel starting from remote

Введение

  1. local: -L Указывает, что данный порт на локальном (клиентском) хосте должен быть перенаправлен на данный хост и порт на удаленной стороне.

    ssh -L sourcePort: forwardToHost: onPort connectToHost означает: подключиться с помощью ssh к connectToHost и перенаправить все попытки подключения на локальный sourcePort на порт onPort на машине с именем forwardToHost , к которой можно получить доступ с машины connectToHost .

  2. удаленный: -R Указывает, что данный порт на удаленном (серверном) хосте должен быть перенаправлен на данный хост и порт на локальной стороне.

    ssh -R sourcePort: forwardToHost: onPort connectToHost означает: подключиться с помощью ssh к connectToHost и перенаправить все попытки подключения к удаленному удаленному sourcePort порту onPort на машине с именем forwardToHost , к которой можно получить доступ с вашего локального компьютера.

Ваш пример

Домашний компьютер работает под управлением Linux

Это изображение номер три из моих набросков. На вашем домашнем компьютере установлена ​​Linux? И у вас есть удаленный хост где-то в Интернете, на котором есть ssh, и вы можете просто получить к нему доступ со своего домашнего компьютера, используя

ssh remotehost

. Тогда у вас наверняка установлен ssh, и вам даже не нужен маршрутизатор для создания туннеля. Используйте следующую команду на своем компьютере (синее поле с именем yourhost представляет ваш домашний компьютер):

ssh -R 11111:localhost:22 remotehost

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

ssh -p 11111 homeuser@localhost

, который запустит ssh-соединение с зеленым портом 11111 на вашем удаленном хосте, которое перенаправляется через ssh-туннель (который даже проходит через ваш маршрутизатор busybox) и подключится к розовому порту 22 локального хоста вашего домашнего компьютера (который является самим домашним компьютером).

Конечно, busybox также может установить туннель.

Это изображение номер 4 из моих набросков. Теперь вы сидите (или вошли в систему) в busybox. Итак, yourhost - это маршрутизатор busybox.

ssh -R 11111:nearhost:22 remotehost

Теперь, когда вы находитесь на удаленном хосте, вы снова набираете

ssh -p 11111 busyboxuser@localhost

, чтобы подключиться к зеленому порту 11111 , который затем перенаправляется через туннель в busybox, а оттуда он подключается к розовому порту. порт 22 ближайшего хоста (представляющего ваш домашний компьютер).

1
27.01.2020, 23:29

Теги

Похожие вопросы