Передача портов туннелирования ssh

У меня три компьютера, A, B, C. A – компьютер, над которым я работаю, C – это удаленный компьютер, к которому я бы хотел получить доступ. Однако C может быть доступен только через B. Только B имеет ssh-сервер, и только A имеет ssh-клиент.

Какую команду использовать (желательно на A), чтобы я мог подключиться к C (порт 80) через B? Например, B должен переслать весь входящий порт 12345 в C: 80.

Я знаю, что это общий вопрос, и я нашел массу команд в google, но никто, похоже, не работал.

Как только он настроен, я должен просто использовать localhost: 5678 на A, который подключается к B: 1234, а затем перейдет на C: 80.

Благодарю.

Возможно, демон sshd настроен на запрет переадресации портов на другие компьютеры или вообще запретить переадресацию портов. Во всяком случае, правильная команда выдавать в A для доступа к C на порт 80 следующим образом:

 ssh -L localhost:5678:<ip-or-name-of-C>:80 <ip-or-name-of-B> 

После установки сеанса ssh вы подключаетесь к localhost: 5678 для подключения к C: 80. Если вы хотите, чтобы входящее соединение с хостом A: 5678 было перенаправлено на C: 80, удалите localhost: из приведенной выше команды.

Если переадресация портов на другие хосты отключена на B , вы можете попробовать цепочку, описанную здесь

  • Как сшить компьютер через маршрутизатор
  • Тайм-аут ключа ssh-agent с экраном или tmux на бастионном хосте
  • Как взаимодействовать между двумя виртуальными машинами VirtualBox, работающими на одном хосте
  • Установление соединения SSH между машинами за брандмауэрами
  • SSH доступ к офисному хосту за NAT-маршрутизатором
  • SFTP через двойной серверный хоп
  • Ubuntu 10.04 с помощью ssh без ввода пароля
  • Maven скопирует локальный файл на удаленный сервер с помощью SSH
  • Отключить вход SSH через пароль для каждого пользователя?
  • Странные символы в терминале OSX
  • Sshfs с пересылкой x?
  • Давайте будем гением компьютера.