質問
ネットワークが次のようなものであると仮定します。
a(192.68.0.1)-------------------- B(192.68.0.2)----------------------------------------------------------------------------------------------- C(192.68.0.3)
Aは私のSSHサーバーで、CはターゲットSSHサーバーであり、AからBからBまでテルネットできます(アカウントはルートではありません)。
Bは、他の人からSSHログインを許可しないサーバーですが、BはSSHを介してCにログインできます。
SSHを介してAからBからCを接続することは可能ですか?
解決
Bでプログラムを実行できれば、次のようなものを使用できます SimpleProxy TCP接続をCに転送するには
次に、b(22ではない)のポート(22ではない)にsshをsshします。これにより、SSHセッションがa <-> cであるため、すべてが暗号化されます。
他のヒント
bにok telnet bで実際に自分自身にsshすることができますが、次のコマンドは動作しないかもしれませんが、最初に試してみることができます
ssh -L0.0.0.0:2200:192.68.0.3:22 127.0.0.1
... sshdがbで実行されていない場合、sshからcに
ssh -L0.0.0.0:2200:192.68.0.3:22 192.68.0.3
a
netstat -an | grep 2200
-B(192.68.0.2)でこれを行う
NetStatに127.0.0.1が0.0.0.0ではなく2200で聴いている場合、このトリックは機能しません...しかし、それがそうであれば...ポート2200のSSHに接続でき、Cにヒットするでしょう
ssh 192.68.0.2:2200
私はあなたにbでローカルホストにsshを持っています。なぜなら、私はシェルを生み出さないというコマンドを覚えていないので、それを調べるのが面倒だからです...しかし、上記の解決策が機能しない場合、あなたはrootなしでsshでポートをリダイレクトすることができません、 bの構成ファイルを変更する必要があります
追加する必要がありますGatewayPorts yes
/etc/ssshd/conf/sshd_configのsshd configファイルへ
http://docstore.ua/orelly/networking_2nded/ssh/ch09_02.htm - これは、SSHによるポート転送についてすべて語っています