Я пытаюсь сопоставить локальные порты для перенаправления трафик на прокси-сервер. Я получил инструкцию, содержащую эту команду:
ssh -A -t -l root 106.120.124.39 -L :8888:106.120.102.53:8888
Из SSH
руководство:
-A
Включает пересылку соединения агента аутентификации. Это также можно указать для каждого хоста в файле конфигурации.
Пересылку агента следует включать с осторожностью. Пользователи с возможность обхода прав доступа к файлам на удаленном хосте (для агента Сокет домена UNIX) может получить доступ к локальному агенту через перенаправленный подключение. Злоумышленник не может получить ключевой материал от агента, однако они могут выполнять операции с ключами, которые позволяют им аутентифицироваться с использованием идентификаторов, загруженных в агент.
-t
Принудительное выделение псевдотерминала
-L
Указывает, что подключения к данному TCP-порту или сокету Unix на локальный (клиентский) хост должен быть перенаправлен на данный хост и порт, или Сокет Unix на удаленной стороне.
Несмотря на то, что я прочитал это, я не понимаю, как это работает на самом деле и каковы последствия ввода его в терминале. Может ли кто-нибудь объяснить это простыми терминами?
Я думал, что у меня есть графическая иллюстрация где-то на -L: 9990: 198.51.100.0: 9999
и Я сделал !
На диаграмме показана ситуация, когда -L [bind_address:] порт: хост: порт хоста
используется для доступа к ресурсам на удаленной стороне. Теперь вы можете подключиться к порту 9990
на своем клиентском компьютере SSH, как если бы вы подключались к example.com:9999
с сервера SSH. Пункт назначения может быть любым. Я не хотел использовать ваш 8888
с обеих сторон, чтобы избежать путаницы; это может быть другой порт.
Картинка стоит тысячи слов; половина из 2000 слов в Как использовать SSH-туннелирование
I думаю, на SSH.com есть довольно простое и хорошо написанное объяснение туннелирования / пересылки SSH.
В случае флага -t
, здесь - еще одно хорошее чтение; и здесь - это флаг -A
.
Изображение может лучше объяснить ситуацию ( -D
= динамическая пересылка):