Чтобы сделать именно то , что вы просили (B:1234=>C:2345), это должно быть запущено на B:
# Not recommended. Read along.
ssh -NgL 1.2.3.4:1234:localhost:2345 10.0.0.3
Это также требует открытия порта 1234 в брандмауэре B Затем подключитесь к 1.2.3.4:1234 извне, чтобы перейти к 10.0.0.3:2345 как если бы вы подключались от самого C (через его петлевой интерфейс). Любой может подключиться, так что имейте это в виду, если сервер на C (каким бы он ни был) не защищен паролем или нет.
Более простой и безопасный способ добраться от A до C заключается в следующем. Это не делает именно то, что вы просили, но, вероятно, это то, что вы хотите. На A:
ssh -NL 1234:10.0.0.3:2345 1.2.3.4
Затем подключитесь к 127.0.0.1:1234 на A чтобы получить доступ к порту 2345 на C C увидит трафик, поступающий из B Это соединение доступно только для A , поэтому метод более безопасен, чем предыдущий.
Если вы хотите разрешить подключение другим компьютерам (скажем, из локальной сети, где находится A ), вы должны использовать опцию -g и указать адрес привязки. Например:
ssh -NgL A_LAN_address_here:1234:10.0.0.3:2345 1.2.3.4
В этом случае переконфигурируйте брандмауэр на A соответственно, затем подключитесь к A_LAN_address_here:1234 .