SSH ke WSL 2 dari Mac: Penyiapan dan Pemecahan Masalah VS Code
Untuk SSH ke WSL 2 dari Mac, Anda memerlukan server SSH di dalam distribusi Linux dan jalur jaringan dari Mac ke server tersebut. Memasang SSH di Windows saja menghubungkan Anda ke Windows, bukan lingkungan pengembangan WSL.
Panduan ini menggunakan Ubuntu di komputer Windows dan Mac pada jaringan lokal yang sama. Ganti nama pengguna serta alamat contoh dengan milik Anda. Untuk daftar pemeriksaan sisi server, lihat pemecahan masalah server SSH WSL.
Tentukan jalur jaringan terlebih dahulu
| Konfigurasi Windows | Jalur koneksi |
|---|---|
| WSL 2 dengan jaringan NAT bawaan | Teruskan port LAN Windows ke port SSH di dalam WSL |
| Instalasi Windows 11 yang didukung dengan jaringan mirrored | Uji akses LAN langsung dan atur aturan firewall yang sesuai |
Microsoft mendokumentasikan jaringan NAT dan mirrored. Jaringan mirrored tersedia di Windows 11 22H2 dan yang lebih baru. Jangan menganggap semua instalasi WSL menggunakan mode jaringan yang sama atau bahwa jaringan mirrored tidak pernah berfungsi.
1. Pasang dan mulai SSH di Ubuntu
Jalankan perintah berikut di Ubuntu, bukan PowerShell:
sudo apt update
sudo apt install openssh-server
sudo sshd -t
sudo service ssh start
ss -ltn | grep ':22'
Pemeriksaan konfigurasi seharusnya selesai tanpa kesalahan. Perintah terakhir seharusnya menampilkan listener pada port 22. Jika Ubuntu menggunakan systemd, Anda dapat memeriksa layanan dengan sudo systemctl status ssh. Dokumentasi OpenSSH Ubuntu membahas instalasi dan konfigurasi.
Periksa nama pengguna Linux dengan whoami. Itulah akun yang digunakan untuk koneksi SSH. Memulai server sekarang tidak membuktikan layanan akan otomatis menyala setelah Windows reboot; uji hal itu secara terpisah setelah konektivitas berhasil.
2. Uji Windows → WSL sebelum melibatkan Mac
Di PowerShell, tampilkan distribusi dan periksa alamatnya:
wsl -l -v
wsl -d Ubuntu hostname -I
Lalu hubungkan ke alamat WSL yang sesuai:
ssh your_linux_user@172.30.98.229
Alamat di atas hanya contoh. Jika hostname -I menampilkan beberapa alamat, periksa antarmuka Ubuntu dan gunakan alamat untuk jaringan yang ingin diteruskan. Kegagalan pada tahap ini berarti masalah SSH atau Windows-ke-WSL; membuat konfigurasi Mac tidak akan memperbaikinya.
3. Untuk mode NAT, teruskan port Windows khusus
Cari alamat LAN komputer Windows dengan ipconfig. Contoh berikut menggunakan 192.168.1.50 dan mengekspos port 2222, sehingga port Windows 22 tetap tersedia untuk server SSH Windows yang terpisah.
Jalankan di Administrator PowerShell:
$WindowsLanIp = '192.168.1.50'
$WslIp = ((wsl -d Ubuntu hostname -I).Trim() -split '\s+')[0]
netsh interface portproxy add v4tov4 listenaddress=$WindowsLanIp listenport=2222 connectaddress=$WslIp connectport=22
New-NetFirewallRule -DisplayName 'WSL SSH LAN 2222' -Direction Inbound -Action Allow -Protocol TCP -LocalPort 2222 -RemoteAddress LocalSubnet
netsh interface portproxy show all
Periksa alamat WSL yang dipilih sebelum menjalankan perintah penerusan. Microsoft mendokumentasikan netsh interface portproxy, termasuk cara menambah, menampilkan, dan menghapus aturan.
Alamat LAN Windows dan alamat NAT WSL dapat berubah. Jika koneksi berhenti setelah restart, bandingkan alamat saat ini dengan aturan penerusan. Perbarui aturan alih-alih menambahkan sederet aturan usang. Jangan mengekspos port ini ke router internet untuk penyiapan yang hanya ditujukan bagi LAN.
4. Uji SSH dari macOS
Buka Terminal di Mac:
ssh -p 2222 your_linux_user@192.168.1.50
Verifikasi sidik jari kunci host server sebelum menerimanya. Sesi yang berhasil seharusnya membuka shell Linux. Jalankan uname -a dan pwd untuk memastikan Anda mencapai lingkungan yang dimaksud.
Untuk penggunaan berulang, tambahkan entri ini ke konfigurasi SSH Mac:
Host windows-wsl
HostName 192.168.1.50
User your_linux_user
Port 2222
Sekarang uji ssh windows-wsl. Siapkan autentikasi kunci sebelum menonaktifkan autentikasi kata sandi, dan biarkan satu sesi yang berfungsi tetap terbuka selama mengubah pengaturan akses.
5. Hubungkan VS Code ke host SSH yang sudah berfungsi
Pasang ekstensi Microsoft Remote - SSH. Jalankan Remote-SSH: Connect to Host…, pilih windows-wsl, lalu buka direktori di dalam distribusi Linux.
VS Code memasang server jarak jauh di target. Ikuti panduan resmi Remote SSH untuk prasyarat dan kegagalan instalasi. Membuat koneksi Terminal terlebih dahulu memisahkan masalah jaringan dari masalah editor.
Apa yang berubah dengan jaringan mirrored?
Dengan konfigurasi mirrored yang didukung, uji akses langsung dari Mac ke alamat LAN komputer Windows dan port SSH Linux. Kebijakan firewall Windows dan Hyper-V tetap dapat memblokir lalu lintas masuk. Ikuti dokumentasi jaringan Microsoft untuk aturan masuk yang cakupannya sempit; jangan menonaktifkan firewall sebagai jalan pintas konektivitas.
Koneksi localhost yang berfungsi di Windows tidak membuktikan komputer lain dapat menjangkau layanan. Uji dari Mac itu sendiri.
Atasi lapisan yang gagal
| Gejala | Pemeriksaan berikutnya |
|---|---|
| Connection refused | Listener SSH, alamat tujuan, aturan penerusan, dan port yang dipilih |
| Connection timed out | Keterjangkauan LAN, firewall Windows, rute VPN, dan isolasi jaringan |
| Permission denied | Nama pengguna Linux, metode autentikasi, dan kunci yang diizinkan |
| Pernah berfungsi sebelum reboot | Status layanan WSL dan alamat Windows/WSL yang berubah |
| Terminal berfungsi, VS Code gagal | Prasyarat server jarak jauh dan log koneksi VS Code |
Gunakan ssh -vvv windows-wsl untuk diagnostik koneksi. Untuk pemeriksaan layanan Linux dan autentikasi, lanjutkan dengan panduan pemecahan masalah SSH WSL.
Pertanyaan yang sering diajukan
Bisakah Mac terhubung langsung ke alamat NAT WSL?
Tidak melalui jalur LAN biasa pada penyiapan bawaan. Gunakan endpoint Windows yang dapat dijangkau dengan penerusan, atau atur jalur jaringan alternatif yang sesuai.
Apakah saya juga perlu Windows OpenSSH Server?
Tidak untuk pendekatan penerusan di atas: server SSH tujuan berjalan di dalam Ubuntu. Server SSH Windows terpisah diperlukan jika Anda sengaja memilih desain jump-host melalui Windows.
Mengapa alamat WSL berubah?
Anggap alamat NAT bersifat dinamis. Periksa setelah distribusi dimulai ulang dan perbarui tujuan penerusan jika perlu.
Penulis:AIRouter
Tautan:https://www.airouter.me/blog/remote-mac-to-wsl2
Penggunaan ulang nonkomersial dengan atribusi (CC BY-NC-SA 4.0).