GNU/Linux >> Linux の 問題 >  >> Linux

外部マシンから Windows 10 で Bash と WSL2 に SSH 接続する簡単な方法

これは、外部マシンから Windows 10 で WSL2 に SSH 接続する方法に関する興味深いブログ投稿です。それを読んで。それがどのように機能するかを知ってください。学べ。 複雑すぎるため、実行しないでください .

こんなことしないで。大丈夫だよ。できます。でもバロックです。ポートを小さな VM 化されたローカル サブネットに転送し、WSL2 IP アドレスの変更に対処し、VM を実行し続ける必要があり、通常はアイススケートで丘を登ろうとしています。

つまりね。その投稿では、ポートの Windows ファイアウォールをオフにし、内部サブネットに転送してから、WSL に引き継がせています。

しかし! Windows 10 は、SSH 接続を受け入れる方法を既に認識しています。 実際、何年もの間、OpenSSH を「オンデマンド機能」として出荷してきました。問題は、あなた (Mac と Linux のスイッチャー) がデフォルトのシェルである PowerShell を気に入らないということです。

では、SSH の既定の Windows シェルを WSL2 の Bash に変更してみませんか?

ブーム。 これで、ポート フォワーディングがなくなり、ファイアウォールは 1 つのプロセスに対してのみ開かれ、WSL2 インスタンスはエントリ時に開始されます。文字通り、すべての世界で最高です。

Windows 10 マシンで WSL2 への SSH 接続をどのようにセットアップしますか

まず、管理者用の PowerShell プロンプトを開きます ([スタート] メニューで PowerShell と入力し、Ctrl + Shift キーを押しながら Enter キーを押します)、次のように入力します。

> Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Name : OpenSSH.Client~~~~0.0.1.0
State : Installed

Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

OpenSSH サーバーではなくクライアントを使用する方法を参照してください。追加:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

次に、SSHD サービスを開始するか、自動的に開始するように設定します:

Start-Service sshd
Get-Service sshd

または自動:

Set-Service -Name sshd -StartupType 'Automatic'

Windows 10 で OpenSSH のデフォルト シェルを構成する

サーバー (SSH 接続している Windows マシン) で、レジストリ キーを設定して、既定のシェルを設定します。この場合、オープン ソースのクロス プラットフォーム PowerShell Core を使用します。あなたが満足するものは何でも使用でき、WSL2 の bash は私を満足させてくれます。

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\WINDOWS\System32\bash.exe" -PropertyType String -Force

このコンテキストで bash.exe が起動することに注意してください "wsl -d YOURDEFAULTDISTRO "だからあなたはあなたのデフォルトが何であるかを知りたいと思うでしょう、そしてそれが気に入らない場合は wsl --set-default DISTRO で変更してください .

<ブロック引用>

注意:上記のコマンドには、完全で正しいパスが必要です。どのシェルでも機能します。私は bash.exe を使用しているので、無料で WSL2 を起動できますが、このソリューションの SSH は Windows の SSH キーと Windows 認証を使用しています。認証用のパスワードを入力するときは注意してください!

1 つのローカル Windows ターミナルにメニュー項目 (プロファイル) を追加して、リモート Windows マシン上の WSL に ssh するためのエントリを追加したい場合は、公開キーを使用して別の場所から自動的にログインすることもできます。

結論と要約:

  • このブログ投稿 - あなたが読んでいるブログ投稿では、Windows の OpenSSH を使用し、Windows で認証を行い、WSL2 を実行しています。 WSL2 が起動し、bash が使用され、Windows が TCP トラフィックを処理します。
  • この別のブログ投稿 (こちら) には、Windows のみの転送ポートがあり、WSL2 の Linux OpenSSH を使用し、Linux に対して認証します。 Windows は周辺的にのみ関与します。 WSL2 の IP アドレスは再起動時に変更されるため、その投稿の最後でリッスンするスクリプトを使用して、ポートプロキシ ルールとファイアウォール ルールを維持する必要があります。

何が必要かを理解し、適切なものを使用してください。

楽しみ!

スポンサー: 製品のバグ? Seq 2020.1 のライブ プロダクション ログ検索で、すばやく真相を突き止めましょう。


Linux
  1. コマンドラインからPostgresqlデータベースにログインする方法

  2. シェルがSshから制御されているかどうかを検出する方法は?

  3. Linux サーバーから Windows クライアントに SCP する方法

  1. SSH速度テストを確認する簡単な方法

  2. クリップボードから nano に貼り付けるには?

  3. Windows ホストで実行されている Postgres に WSL2 内から接続するにはどうすればよいですか?

  1. .bashrcの目的とそれはどのように機能しますか?

  2. テキストのブロックを外部ソースから vi エディターに貼り付ける最も簡単な方法

  3. Git for Windows で Git Bash のディレクトリを変更するにはどうすればよいですか?