it-swarm-eu.dev

Jak ssh na server pomocí jiného serveru?

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 ?

36
Omid

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.

57
Alexios

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.)

18
Daniel Pittman