Машина А находится за брандмауэром. У меня есть физический доступ к нему, но я хочу войти в него удаленно, и у меня нет доступа к настройкам брандмауэра.

Машина B удалена и не защищена каким-либо межсетевым экраном. (Это мой линод)

Машина C - это мобильное устройство, с которого я попытаюсь подключиться к Ssh.

Есть ли команда ssh, которую я могу запустить с машины A, которая подключается к машине B и остается открытой, что позволит мне войти в A из C через B?

Из руководства я бы предположил, что это будет следующим

ssh -R *:9999:localhost:22 me@B

а затем запустить это на C

ssh me@B -p 9999

но предыдущая команда сообщает «Соединение отказано».

1 ответ1

2

Чтобы получить доступ к машине A (за брандмауэром) с машины C через промежуточную машину B (вне брандмауэра), сделайте следующее:

На машине А:

ssh -2 -N -l [acct on B] -g -R 4001:localhost:22 MachineB

'-g' может быть или не быть обязательным. Это то, что я использую.
Вы можете выбрать любой порт, кроме «4001».

Затем на машине B:

ssh -p4001 -g -L 9999:machineA:22 localhost

Обратите внимание, что «machineA» также может быть «127.0.0.1». Не уверен на 100% - эксперимент.
'-g' делает порт 9999 также доступным для других машин, внешних по отношению к машине B.
Пропуск -g делает порт 9999 доступным только для других процессов на компьютере B.

Затем на машине C:

ssh -p9999 me@MachineB

Вуаля!

Вы также можете получить доступ к другой машине, D, в сети A из C. Сделайте это на MachineB:

ssh -p4001 -g -L 9999:[some machine on MachineA's network]:[some port] localhost

Это позволяет вам получить доступ к порту на другом компьютере в сети MachineA.

Таким образом, если существует машина D, также за брандмауэром в той же сети, которая находится рядом с машиной A, вы можете получить к ней доступ с машины C, как если бы вы находились за машиной A.

Например, если Machine D - это сервер Windows Server, и вы хотите использовать удаленный рабочий стол с компьютера C, который также является Windows Box, на компьютер D, сделайте следующее:

Машина А:

ssh -2 -N -l [acct on B] -g -R 4001:localhost:22 MachineB 

(это то же самое)

Машина Б:

ssh -p4001 -g -L 9999:machineD:3389 localhost

Компьютер C: запустить клиент RDP и подключиться к компьютеру MachineB:9999

BAM! Вы подключены к Windows Server Box (компьютер D) с компьютера C.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .