私はLinuxラップトップを使用していて、2つの(!)Linuxサーバー(server1、server2)の背後にあるWindowsワークステーションにアクセスしようとしています。そのうちserver1のみが外部からアクセスでき、server2のみがワークステーションにアクセスできます。
Linux -> server1 -> server2 -> windows:3389
Windowsマシンへのリモートデスクトップ接続を取得しようとしています。
ラップトップで実行することにより、sshをサーバー2に転送できるトンネルを設定することができました。
ssh -f -N -L 2001:server2:22 server1
そして接続する:
ssh -p2001 localhost
したがって、これにより、ローカルポート2001からサーバー1を経由してserver2:22へのトンネルが作成されます。また、これを介してsftpを実行することもできたので、コンソールを使用するのではなく、ファイルマネージャーウィンドウから直接server2のデータにアクセスできます。
sftp://localhost:2001
住所行で。
素晴らしい、今次のレベルに。 server1で実行しました:
ssh -f -N -L 2222:windows:3389 server2
これにより、Server1のポート2222がワークステーションのRDPポートに接続されます。さて、RDPソフトウェア(RemmimaとKRDCを試しました)をServer1:2222に転送して、それで済ませることはできませんか?残念ながら、これは何もしません(接続がタイムアウトします)。 Remminaにはトンネリングのオプションがありますが、この状況でそれらが私を助けることができるかどうかについて私は完全に混乱しています。
だから:私は何が間違っているのですか?
さて、RDPソフトウェア(RemmimaとKRDCを試しました)をServer1:2222に転送するだけではいけません。
いいえ、sshはデフォルトでポート転送をローカルホストインターフェイスにバインドするため、「外部から」ポートにアクセスすることはできません。
外部インターフェイスをバインドする必要があります。これにより、server1を表示するすべてのユーザーが内部Windowsサービスにアクセスできるようになります。これは、server1のsshconfigのGatewayPorts
オプションも微調整する必要があります。
ssh -f -N -L server1:2222:windows:3389 server2
または、たとえばコンピュータから次のように、もう一度直接マシンにトンネリングする必要があります。
ssh -fNL 2222:localhost:2222 server1
次に、localhost:2222に接続します。