Možný duplikát:
ssh přes více hostitelů
Pro připojení k serveru B musím nejprve ssh na server A . linka pro přístup k serveru B ?
Pokud je server B dosažitelný pomocí ssh
a potřebujete pouze ssh
(nikoli přímý scp
nebo sftp
), funguje to také velmi dobře:
ssh -t $SERVER_A ssh $SERVER_B
The -t
option vynutí přiřazení pseudottyty, i když je spuštěn jediný příkaz na druhém konci. To je užitečné, protože ssh
potřebuje pseudotty.
Protože používáte dvě vnořené instance ssh
, únikový znak ve vnitřní relaci je Enter~~ (dvě tildes). Jedna vlna posílá útěk do prvního Shell.
V ssh
není vestavěn žádný jiný způsob, než použít předávání portů.
Existuje však způsob, který funguje poměrně dobře - nastavení ProxyCommand
pro ssh. Můžete to určit na základě hostitele v ~/.ssh/config
A použít jej k určení příkazu, který se má spustit pro připojení ke vzdálenému portu ssh.
Používám to na několika hostitelích:
Host serverB.example.com serverB
ProxyCommand /usr/bin/ssh serverA.example.com /usr/bin/nc %h %p
Podrobnosti najdete na manuálové stránce ssh(1)
a nc(1)
z balíčku netcat
pro příkaz, který používám pro předávání po připojení. (Můžete však použít cokoli, co vytvoří připojení TCP a přes něj však přejde standardní vstup a výstup.)