2013-02-25 3 views
0

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

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

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

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

Спасибо.

+0

http: // superuser. com/q/107679/1845 – ephemient

+0

Возможно, я ошибаюсь, но я не думаю, что это отвечает на мой вопрос. Ссылка, которую вы упомянули, предлагает подключиться от A до C с помощью ssh, тогда как я хочу получить доступ к веб-серверу на C. Я знаю, что разница не огромна, но я не могу найти правильный способ адаптироваться к моей проблеме. – Car981

+0

О, тогда это тривиальный форвард. На A запустите 'ssh -L5678: C: 80 B'. – ephemient

ответ

0

Вы должны использовать удаленный порт вперед:

С Заурядный SSH -R *: 1234: C: 80 вы @ B

Тогда вы можете получить доступ к C, набрав B: 1234, но это также требует установки GatewayPorts в yes в/etc/ssh/sshd_config и перезагрузки sshd (это говорит C, чтобы прослушивать все IP-адреса, а не только локальные IP-адреса, поэтому к ним можно получить доступ извне)

После выхода из системы от B, он также отключит туннель до C.