Řešení 1:
Tak určitě; stačí použít přesměrování/tunelování portů SSH. Spusťte ssh připojení k "proxy" počítači pomocí následujícího příkazu:
ssh -L$LOCALPORT:$REMOTEHOST:$SSHPORT $PROXYHOST
$PROXYHOST
:počítač, ke kterému máte přístup SSH$REMOTEHOST
:stroj, ke kterému se $PROXYHOST může připojit, ale vy ne. Použijte název hostitele nebo IP adresu$PROXYHOST
lze použít k odkazování na stroj$SSHPORT
:port, který sshd naslouchá na vzdáleném hostiteli; s největší pravděpodobností 22$LOCALPORT
:na vašem místním počítači se otevírá místní odchozí port SSH, který přesměrovává na port 22 na$REMOTEHOST
Nechte toto připojení zapnuté, aby tunel fungoval. Možná budete chtít přidat také -N
k příkazu, aby toto připojení nevyvolalo vzdálený shell a vy jej později omylem nezavřeli.
Po vytvoření tunelu proveďte následující:
ssh -p $LOCALPORT localhost
Toto se pokusí o připojení SSH k vašemu místnímu počítači na portu, který je přesměrován na $REMOTEHOST
port SSH.
Řešení 2:
Pokud jste ochotni aktualizovat konfiguraci na svém klientovi, můžete nastavit svého klienta tak, aby používal váš box brány jako proxy. Váš reléový box bude potřebovat nainstalovaný netcat a pro dosažení nejlepších výsledků budete chtít mít nastavení ověřování na základě klíče.
Zde je to, co používám ve svém .ssh/config pro připojení přes jiného hostitele.
Host internal-ssh-host-proxy
ProxyCommand /usr/bin/ssh [email protected] "/bin/netcat -w 1 internal-ssh-host 22"
Pomocí výše uvedeného můžete jednoduše spustit příkaz ssh internal-ssh-host-proxy z vašeho klientského počítače.
Pokud má hostitel proxy SSH klienta OpenSSH 5.4 nebo vyšší, nepotřebujete netcat a místo toho můžete použít vestavěný režim netcat.
Host internal-ssh-host-proxy
ProxyCommand /usr/bin/ssh [email protected] -W internal-ssh-host:22
Řešení 3:
Z uvedených odpovědí je Zordache's nejlepším celkovým řešením. Nicméně pro budoucí generace, pokud se chcete jednoduše připojit ad-hoc bez úpravy konfigurace, použijte -t
příznak k přidělení pseudoterminálu spolu s prováděním ssh přímo na relé.
ssh -t relay.example.com ssh internal.example.com
Řešení 4:
Spojení můžete přesměrovat automaticky pomocí OpenSSH. Ve vašem ~/.ssh/authorized_keys
můžete zadat příkaz, který se má provést, což může být SSH pro druhý počítač.
[ssh client] ----> [ssh relay server] ----> [ssh target server]
you modified authorized_keys target machine
Nakonec uvidíte dvě výzvy pro Password:
:jeden pro předávací server a jeden pro cílový server. Toto chování můžete kdykoli odstranit pomocí certifikátů.