VSCode: วิธีการเชื่อมต่อ ssh remote กับรีโมท WSL2
เป็นไปได้หรือไม่ใน VSCode เพื่อแก้ไขไฟล์ภายใน WSL2 ของพีซีระยะไกล (นี่เหมือนกับการรวมกันของ Remote-WSL และ Remote-SSH) ฉันสามารถเชื่อมต่อกับพีซีระยะไกลนั้นผ่าน ssh และ RDP
เส้นทาง\\wsl$\ดูเหมือนจะไม่พร้อมใช้งานในการเชื่อมต่อ ssh ระยะไกลของฉัน
PCA - me, local, VSCode
^
|
ssh and/or RDP
|
V
PCB - remote, WSL2
(ขณะนี้ฉันตั้งค่า Windows OpenSSH บนพีซีระยะไกลด้วยเชลล์ CMD เริ่มต้นฉันพยายามตั้งค่าเชลล์เป็น Bash แต่ส่วนขยายระยะไกลไม่ติดตั้ง)
ปรับปรุงการตั้งค่า PC-B ของเปลือกเซิร์ฟเวอร์ SSH จะbash.exe ไม่แก้ปัญหาทั้งหมดของฉัน ฉันไม่แน่ใจว่าทำไมเมื่อก่อนมันใช้ไม่ได้ ดูคำตอบของฉันด้านล่างสำหรับรายละเอียดเพิ่มเติม
คำตอบ
เมื่อตอบคำถามของตัวเองฉันมั่นใจว่าเคยลองทำมาก่อนแล้วและมันไม่ได้ผล แต่ตอนนี้ฉันลองอีกครั้งมันก็ได้ผล บางทีฉันอาจต้องการรีบูต Windows และ WSL2
- เปิดใช้งานเซิร์ฟเวอร์ Windows SSH บน PC-B และตั้งค่าเชลล์เป็น
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) และบอก VSCode ว่าเป็นเซิร์ฟเวอร์linux (เนื่องจากคุณกำลังเชื่อมต่อกับ bash.exe ภายใน WSL2)
- หากคุณใช้พร็อกซีเซิร์ฟเวอร์ให้เพิ่มพร็อกซีลงใน
~/.wgetrcไฟล์.
- หากคุณใช้พร็อกซีเซิร์ฟเวอร์ให้เพิ่มพร็อกซีลงใน
Voila
ขั้นตอนเหล่านี้นำมาจากTHE EASY WAY วิธี SSH ไปยัง Bash และ WSL2 บน Windows 10 จากเครื่องภายนอกซึ่งคุณสามารถดูรายละเอียดเพิ่มเติมได้
หากคุณต้องการเชื่อมต่อกับ WSL ระยะไกลคุณควรตั้งค่าให้ทำงานด้วยตัวเองsshdแทนที่จะใช้โฮสติ้ง Windows ในการทำทันเนล ถ้าผมได้มีคำสั่งปัญหาของคุณได้ไหลดูเหมือนว่าจะถูกระบุไว้ในหนึ่ง VS รหัสบล็อกโพสต์ ที่นี่ฉันจะพูดถึงขั้นตอนที่ฉันคิดว่าคุณจะต้องไปสู่สถานะเป้าหมายของคุณ
ประการแรกปิดการใช้งานsshdWindows ระยะไกลเพื่อไม่ใช้พอร์ต 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_keysPCB
สมมติว่าคุณติดตั้ง OpenSSH สำหรับ Windows แล้ว (ดูเหมือนว่าไคลเอนต์Remote 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 ถือเป็นความลับดังนั้นทั้งไคลเอนต์และเซิร์ฟเวอร์จะไม่เริ่มทำงานเว้นแต่คุณจะยกเลิกการอนุญาตทั้งหมดจากเนื้อหาหลักของคุณ บน linux do chmod 600 .ssh/authorized_keysและสำหรับ windows ให้ssh-agentทำตามคำแนะนำจากคำตอบ SEนี้
ข้างต้นอาจดูน่ากลัวเล็กน้อย แต่ในความเป็นจริงขั้นตอนการตั้งค่า SSH มาตรฐานมาก
ขั้นตอนง่ายๆ
- เพียงอัปเดต vscode ของคุณเป็นเวอร์ชันล่าสุด
- ติดตั้งชุดขยายการพัฒนาระยะไกล
- อนุญาตให้เชื่อมต่อ WSL2 ในการตั้งค่า
- ถ้าคำตอบของฉันช่วยให้คุณได้รับการโหวต: D