Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

Windows 10でのネイティブSSHポートフォワーディング(トンネリング)

この記事では、組み込みのWindows10OpenSSHサーバーを使用してSSHトンネルを介してポートを転送する方法を示します。 。 SSHポート転送を使用すると、アプリポートをローカルコンピューターからリモートサーバーに、またはその逆にトンネリング(転送)できます。以前のSSHトンネリングはLinux/Unix環境でのみ使用されていましたが、現在はWindows 10 / WindowsServer2016でも使用できます。これは、WindowsでSSHトンネル(TCPポート22)を介してRDP接続を使用する方法のケーススタディです。

SSHトンネリングは、ファイアウォールの背後にあるリモートコンピューターに接続する必要があるシナリオで主に使用されます。たとえば、SSHポートのみが開いているWindows Server(TCP 22)があります。他のすべてのポートは、ハードウェアファイアウォールまたはWindowsファイアウォールによってブロックされています。タスクは、RDPクライアントを使用してWindowsServerに接続することです。リモートデスクトップポート3389がファイアウォールによってブロックされているため、不可能のようです。ただし、SSHトンネルを介したポート転送技術を使用できます。

SSHトンネリングの一般的な使用シナリオは次のとおりです。

  • ローカルTCP転送 リモートサーバーに転送するローカルポートです。
  • リモートTCP転送 ローカルコンピュータに転送するリモートポートです。
  • ダブルSSHトンネル SSHサーバーを介してNATの背後に専用のパブリックIPアドレスを持たないコンピューターを接続します(OpenVPNソリューションが適用できない場合)。

SSHトンネルを介したRDPアクセス(ローカルTCP転送)

このモードでは、コンピューターにローカルTCPポートを作成します。このポートへのすべての接続は、SSHトンネルを介してリモートサーバー上の指定されたポートに転送されます。この例では、ローカルポート 8888を作成します 、接続はRDPポート 3389に転送されます リモートのWindowsコンピューター。一般的な接続スキームを以下に示します。

Windows 10でのネイティブSSHポートフォワーディング(トンネリング)

組み込みのWindows10SSHクライアント(Windows101809およびWindowsServer2019以降のWindowsの一部)を使用してSSHトンネルを作成するには、次のコマンドを実行します。

ssh -L 8888:192.168.1.90:3389 root@192.168.1.90

SSHトンネルをバックグラウンドで機能させるには、 –fを追加します パラメータ。

Windows 10でのネイティブSSHポートフォワーディング(トンネリング)

SSHトンネルを介してリモートコンピューターのデスクトップに接続するには、RDPクライアント(mstsc.exe)を使用してコンピューターのローカルポート8888に接続する必要があります。

127.0.0.1:8888

Windows 10でのネイティブSSHポートフォワーディング(トンネリング)

リモートコンピューターにログインし、RDPセッションで安全に作業します(ただし、ポート3389はファイアウォールによって閉じられていることに注意してください)。 TCPViewツールを使用して、RDP接続がローカルであることを確認できます(RDP接続はローカルで実行されているSSHサーバーによって開始されます)。

Windows 10でのネイティブSSHポートフォワーディング(トンネリング)

暗号化されていないアプリトラフィックを転送すると、パブリックネットワークを介して暗号化されて送信されることに注意してください。このようなトラフィックは、SSH接続の一方の端で暗号化され、もう一方の端で復号化されます。

ローカルネットワークの他のコンピューターも、直接接続が許可されていない場合でも(SSH経由とRDP経由の両方)、このモードを使用してRDPサーバーに接続できます。これを行うには、SSHトンネルを作成して、RDPクライアントを介してコンピューターのポート番号8888に接続する必要があります。

mstsc.exe /v 10.10.1.220:8888

Windows 10でのネイティブSSHポートフォワーディング(トンネリング)

ローカルコンピュータへのリモートTCP転送

別のSSHトンネルのユースケースがあります—リモートTCP転送。 SSHトンネルを使用すると、リモートサーバーが自分のコンピューターのローカルポートまたはローカルネットワーク内の別のコンピューターのポートにアクセスできるようにすることができます。たとえば、外部サーバー(200.168.1.90)がイントラネットサイト(インターネットで公開されていない)にアクセスするようにします。逆SSHトンネルを作成するには、次のコマンドを使用します:

ssh -R 8080:internalwww:80 user@200.168.1.90

リモートSSHサーバーからinternalwwwwサイトにアクセスするには、ブラウザに次のアドレスを入力するだけで十分です:https://localhost:8080

すべてのWindowsバージョンで、netsh interface portproxy commandを使用してポート転送ルールを作成できます。

SSHトンネルを使用すると、ポート転送チェーンを構築できます。 SSHトンネリングを有効または無効にするには、OpenSSH構成ファイル(%programdata%\ ssh \ sshd_config )に次のいずれかのディレクティブを追加します。 ):

AllowStreamLocalForwarding yes
AllowTcpForwarding remote


  1. Windows 10 で SSH キーを生成する方法

    Windows 環境での SSH キーの生成は、サードパーティ ツールのインストールを必要とする複雑なプロセスでした。 Windows 10 の 2018 年 4 月の更新以降、Windows には OpenSSH クライアントがプリインストールされて出荷されています。つまり、ssh-keygen を使用して SSH キーを生成できます。プロセス全体を順を追って説明します。 最初に、OpenSSH がマシンにインストールされていることを確認する必要があります。以前のバージョンの Windows 10 からアップグレードした場合は、手動で有効にする必要がある場合があります。設定アプリを起動

  2. Windows 10 で SSH セキュア シェルを使用するには?

    コンピュータをリモート デスクトップまたはネットワーク経由で接続してデータを共有する場合は、Secure Shell が必要です。このブログでは、Windows 10 で SSH セキュア シェルを使用する方法を学習します。SSH セキュア シェルは、デバイスとインターネットを含む任意のネットワーク間の通信システムと見なすことができます。このシステムは暗号化されており、ハッカーやその他のスパイウェア、アドウェア、マルウェアが、ユーザーがアクセスしたりデータを受信したりしているサイトや場所に関する詳細を取得できないため、安全です。 Linux オペレーティング システムは Windows よりも