VSCode:リモートWSL2にリモート接続する方法
VSCodeでリモートPCのWSL2内のファイルを編集することは可能ですか?(これは、Remote-WSLとRemote-SSHの組み合わせのようなものです。)sshとRDPを介してそのリモートPCに接続できます。
\\wsl$\リモートssh接続でパスを使用できないようです。
PCA - me, local, VSCode
^
|
ssh and/or RDP
|
V
PCB - remote, WSL2
(現在、リモートPCにデフォルトのCMDシェルを使用してWindows OpenSSHをセットアップしています。シェルをBashに設定しようとしましたが、リモート拡張機能がインストールされませんでした。)
アップデートにPC-BのSSHサーバのシェルの設定はbash.exe ありませんすべての私の問題を解決します。以前は機能しなかった理由がわかりません。詳細については、以下の私の回答を参照してください。
回答
私自身の質問に答えて、私は以前にこれを試したことがあり、それは機能しなかったと確信していましたが、今はもう一度試してみると機能します。おそらく、WindowsとWSL2を再起動する必要がありました。
- PC-BでWindowsSSHサーバーを有効にし、シェルを
bash.exe
# Powershell as Administrator
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Set-Service -Name sshd -StartupType 'Automatic'
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\WINDOWS\System32\bash.exe" -PropertyType String -Force
Remote-SSHを使用して、VSCodeをPC-AからPC-Bに接続し(Windows資格情報を使用)、それがLinuxサーバーであることをVSCodeに通知します(WSL2内でbash.exeに接続しているため)。
- プロキシサーバーの背後にいる場合は、プロキシをに追加します
~/.wgetrc。
- プロキシサーバーの背後にいる場合は、プロキシをに追加します
出来上がり。
これらの手順は、詳細を確認できる外部マシンからWindows10のBashおよびWSL2にSSHで接続する方法を簡単に説明したものです。
リモートWSLに接続する場合sshdは、Windowsのホスティングに依存してトンネリングを実行するのではなく、独自に実行するように設定する必要があります。問題の説明が正しければ、フローはVSCodeのブログ投稿の1つに概説されているようです。ここでは、目標の状態に到達するために必要だと思う手順について説明します。
まず、sshdリモートWindowsで無効にして、ポート22を占有しないようにします。次に、sshd 内部 にインストールして起動しますPCB。
# from PCB command prompt
# something like that, depending on your choice of distro
sudo apt remove openssh-server && sudo apt install openssh-server
# this would again depend on your chosen distro
sudo /etc/init.d/ssh start # after i do this - windows pops up a firewall prompt to allow me create a rule. you might need to add it manually
次に、sshを介してパスワードログインを有効にするか、(できれば)キーペアを生成して公開キーを/home/your_name/.ssh/authorized_keysオンにする必要がありPCBます。
OpenSSH for Windowsがインストールされていると仮定すると(これはリモートSSHが依存しているクライアントのようです)、PCA次のようになります。
# something along these lines on your PCA
PS C:\WINDOWS\system32>ssh-keygen
# note location of .pub file and copy its contents into remote ./ssh/authorized_keys
# add generated private key to ssh-agent service
PS C:\WINDOWS\system32> Start-Service ssh-agent # if this fails - ensure service is installed and enabled
PS C:\WINDOWS\system32> ssh-add path\to\your\private_key # ensure you have dropped all permission except your own user
パーミッションに注意してください:sshキーは秘密と見なされるため、キーマテリアルからすべてのパーミッションを削除しない限り、クライアントもサーバーも起動しません。Linuxchmod 600 .ssh/authorized_keysでは、を実行し、Windowsの場合ssh-agentは、このSEの回答の指示に従ってください。
上記は少し気が遠くなるように思えるかもしれませんが、実際には非常に標準的なSSHセットアップ手順です
簡単な手順
- vscodeを最新バージョンに更新するだけです
- リモート開発拡張パックをインストールする
- 設定でWSL2接続を許可する
- 私の答えがあなたの賛成に役立ったなら:D