Setup Remote SSH WSL di Windows 11/10

Photo of author
Publish in

Berawal dari kasus yang pernah saya alami sendiri yaitu remote akses ke komputer windows, tapi beberapa tools jaringan yang biasanya saya gunakan ada di gnu/linux semua sehingga saya harus install WSL di komputer windows tersebut.

Remote yang cukup normal digunakan untuk windows adalah remote desktop, tapi rasanya kurang nyaman karena tidak pleksibel dan bersifat mirroring. Maka pada saat itu saya berpikir :

“Apakah bisa saya remote WSL Ubuntu di windows dari luar komputer ?”

Dan pada akhirnya saya menemukan jawaban tersebut. YA BISA DONG !
Asalakan WSL yang digunakan adalah WSL 2, karena saya sendiri belum sempat mencoba pada WSL 1.

1. Install SSH di WSL Ubuntu

Hal pertama yang perlu dilakukan adalah menginstall openssh-server di WSL yang kita gunakan, case disini saya menggunakan ubuntu. Kalian bisa menyesuaikan dengan distro yang kalian gunakan.

sudo apt-get install openssh-server

Setelah itu ubah bagian konfigurasi ssh agar dapat dibaca di semua segment IP dan tentukan port yang digunakan, disini saya akan menggunakan Port 2222.

sudo nano /etc/ssh/sshd_config

Cari part berikut lalu hapus tanda # (uncomment) dan sessuaikan bagian berikut :

Port 2222
ListenAddress 0.0.0.0

Jika sudah maka jalankan dan pastikan bahwa ssh berjalan pada saat startup

sudo systemctl enable ssh
sudo systemctl start ssh

2. Konfigurasi Netsh di Windows Command Prompt

Selanjutnya kita akan melakukan routing dari network host windows ke WSL menggunakan netsh. Caranya buka aplikasi Command Prompt sebagai Administrator lalu masukan perintah berikut :

netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=2222 connectaddress=172.18.208.10 connectport=2222

Keterangan

  • listenaddress : alamat IP yang mengakses host ( 0.0.0.0 artinya semua IP )
  • listenport : port yang akan digunakan oleh host windows
  • connectaddress : IP yang digunakan oleh WSL (Pastikan check IP dari WSL)
  • connectport : port ssh yang digunakan oleh WSL

Setelah itu kamu bisa check routing yang sudah dibuat dengan perintah berikut :

netsh interface portproxy show v4tov4
Perintah Optional*
#Menghapus konfigurasi
netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=2222

#Reset semua konfigurasi
netsh interface portproxy reset

3. Pengujian

Untuk menguji keberhasilan konfigurasi yang sudah kita buat cukup mudah, kamu bisa coba remote ssh ke IP Address Host milik Windows (contoh 192.168.0.1) dengan menambahkan port 2222, contoh seperti berikut :

ssh [email protected] -P 2222

4. Kekurangan & Kelebihan

Meskipun metode ini cukup menarik, ada beberapa kelebihan dan kekurangan yang saya temui pada saat melakukan implementasi diantaranya sebagai berikut :

Kelebihan

  • WSL yang kita remote akan terhubung ke jaringan private milik host windows, jadi kita bisa akses semua perangkat pada jaringan tersebut.
  • Metode netsh ini bisa di implementasikan ke aplikasi lain selain WSL

Kekurangan

  • Terminal WSL harus selalu dalam keadaan running, jika aplikasi ditutup maka WSL tidak dapat diakses
  • Jika komputer restart maka kemungkinan IP Address dari WSL akan berubah dan kita perlu melakukan routing kembali
  • Sampai artikel ini di publish, saya belum menemukan cara efektif untuk membuat program autorun routing netsh jika WSL memiliki IP Address yang berebeda.

5. Penutup

Pembahasan pada artikel ini membuktikan bahwa kita dapat melakukan routing jaringan ke aplikasi berbasis container seperti WSL menggunakan perintah Command Prompt yaitu netsh. Hanya saja perlu diperhatikan bahwa pointing yang dilakukan harus menggunakan port yang berbeda dengan port default yang berjalan pada Windows sebagai host, jika tidak maka proses routing tidak akan berhasil.

Referensi

  • https://www.hanselman.com/blog/how-to-ssh-into-wsl2-on-windows-10-from-an-external-machine
  • https://superuser.com/questions/1582234/make-ip-address-of-wsl2-static (Optional Reference)