Я хотел ssh
из server1
и добраться server3
через server2
.
Это можно сделать с помощью:
ssh -t user2@server2 ssh user3@server3
Но как я могу этого добиться, когда server2
и server3
у меня естьпароль для входа?
Ограничения:
1)Не буду вводить пароли
2)В этом случае я не могу использовать ключи SSH.
решение1
Эту опцию следует использовать -t
с каждым последующим параметром ssh
, за исключением последнего:
ssh -t user1@server1 ssh -t user2@server2 ssh user3@server3
Если возможно, лучше использовать -J
( ProxyJump
) вместо встроенных команд ssh:
ssh -J user1@server1,user2@server2 user3@server3
решение2
Есть несколько способов сделать это. Самый быстрый и грязный, который я бы использовал, это прорыть туннель server1 -> server2
, а затем использовать его, чтобы пойтиserver1 -> server3
ssh -L localhost:2222:server3:22 server2
Здесь мы говорим:
ssh для server2
...
любого трафика, который появляется наЛлокальная сторона туннеля на локальном хосте порт 2222...
пропустить через туннель...
на дальней стороне отправить этот трафик на сервер 3 порт 22
Затем из другого окна:
ssh -p2222 localhost
Это должно запросить у вас пароль на сервере server3.