Windows 10 に、WSL を使用して Ubuntu 18.04 と Ubuntu 20.04 の 2 種類の Linux ディストリビューションをインストールしました。20.04 を ssh ポート 22 に、18.04 を ssh ポート 2222 に構成したいと考えています。これらの変更を行うと、どちらのディストリビューションにも影響しますか?
これらのディストリビューションをインストールすると、それらは分離されますか、それとも互いに影響しますか?
答え1
どちらか一方 (または両方) のシステムで、SSH ポートを好きなだけ変更できます。変更による影響はなく、システムは変更されたポート設定で正常に動作します。
SSHはあなたのシステムとのやり取り。内部プロセスはこれを使用しません。Ubuntu Desktop の標準インストールには SSH サーバーすら存在しません。
答え2
まあ、あなたの質問に答える「簡単な答え」はありますが、おそらくそれほど役には立たないでしょう。そして、「WSL で SSH サーバーを実行するために実際に必要なこと」があります。
他の人がすでに述べているように、簡単な答えです。各インスタンスは、比較的分離された状態で独自の SSH サーバーを運用できます。
長い答えは…それは複雑WSL で SSH サーバーを実行することは 1 つの方法です。しかし、実際にリモートで接続できるかどうかはまったく別の問題です。ポート転送、ファイアウォール、サービスの起動 (systemd がない場合、WSL ではうまく実行できない) について心配する必要があります。
まず、WSL での ssh の使用例を知っておくと役立ちます。
インスタンスにリモートアクセスしたいだけなら、Windows 10 OpenSSHサーバーをインストールするホスト自体でこれを実行します。これで、実際に必要な構成は、Windows ファイアウォールのポート 22 を開くことだけです。そのためのワンライナーは、インストール用に上記リンクされている Microsoft の手順に含まれています。
Windows に OpenSSH サーバーをインストールすると、以下を使用できます。
ssh -t <user@windows_host_or_ip> wsl -d <wsl_instance_name>
... を使用して WSL インスタンスにアクセスします。 は、-d <wsl_instance_name>
デフォルトの WSL インスタンスには必要ありません。
しかし、WSL インスタンスへの SSH アクセスが必要な理由は他にもあるかもしれません。たとえば、私は Ansible を使用して、複数のマシンにまたがる WSL インスタンスの一部に接続し、構成しています。この場合、各インスタンスで「実際の」SSH サーバーが実行されている必要があります。
その場合、次のような解決策を考え出す必要があります。
- Windows ホストから WSL2 インスタンスへのポート転送 (WSL1 のネットワークは Windows ネットワーク インターフェイスと「ブリッジ」されて実行されるため、ポート転送は必要ありません。)
- 各インスタンスでサービスを開始する
sshd
(自動ではありません)
私の意見では、ここで最も簡単な解決策は、Windows OpenSSH サーバーをポート 22 にインストールし、各 WSL インスタンスを独自の OpenSSH サーバーで構成することですが、(もちろん) 異なるポートを使用します。その後、Windows ホストを「ジャンプホスト」として使用して、その中のインスタンスにアクセスできます。詳細な手順については、この答えスーパーユーザーについて。
sshd
これにより、「 WSL problem, because you can use a syntax similar to the earlier one I mentioned (using the
wsl`コマンドで開始」の問題も解決されますを通してWindows ssh) を使用して、サービスをリモートで開始します。つまり、Windows SSH サーバーが自動的に開始するように設定されていれば、これを使用して WSL インスタンスの SSH サーバーのいずれかを開始できます。詳細については、その回答を参照してください。
こちらも読む価値があるこの答えWSL での一般的なポート転送シナリオについては、Super User をご覧ください。