OpenSSH Server for Windows XP

Cara terbaik untuk menginstall OpenSSH server di mesin berbasis Windows adalah dengan menggunakan Cygwin seperti yang telah dibahas pada tulisan sebelumnya.

Namun saat tulisan ini dibuat, Cygwin telah berhenti mendukung windows XP.

NOTE: As previously announced, Cygwin version 2.5.2 was the last version supporting Windows XP and Server 2003. (Instructions for obtaining that version)

Sumber: http://www.cygwin.com/

Screenshot.

Terdapat tiga program yang sama-sama menggunakan engine openssh dan dibuat sedemikian rupa sehingga compatible dengan Windows, salah satunya Windows XP yakni:

  1. http://sshwindows.sourceforge.net (Download)
  2. http://opensshwindows.sourceforge.net (Download)
  3. http://sshwindows.webheat.co.uk (Download)

Setelah mencicipi ketiga program diatas, saya memilih nomor 2, yakni: http://opensshwindows.sourceforge.net dengan sedikit tambahan aktifitas.

Install Notepad++

Sebelum memulai, ada baiknya kita menginstall Notepad++ terlebih dahulu di Windows XP.

Screenshot.

Screenshot.

Multi User

OpenSSH for Windows memiliki kendala dalam multi user.

Kita buat user lain selain Administrator.

Masuk ke Control Panel >> User Accounts. Cara cepat menggunakan Run ketik control userpasswords2.

Screenshot.

Tambah user selain Administrator, yakni ijortengab.

Screenshot.

Tambah role sebagai Administrators.

Screenshot.

Install OpenSSH for Windows

Download program OpenSSH for Windows dari repository IjorTengab Tools. Lakukan instalasi.

Screenshot.

Setelah instalasi, lakukan verifikasi port 22 yang didengar oleh sshd.

netstat -aon | find /i "22"

Screenshot.

Secara default, lokasi direktori OpenSSH for Windows adalah di C:\Program Files\OpenSSH for Windows.

Masuk ke direktori tersebut. Buka file berlokasi di etc/passwd menggunakan notepad++.

Screenshot.

Dari isi file tersebut terlihat bahwa login ssh hanya untuk user Administrator dengan home direktori berlokasi di /home alias di C:\Program Files\OpenSSH for Windows\home.

Screenshot.

After Install

PATH

Klik kanan pada My Computer >> Properties.

Screenshot.

Tab Advanced. Tombol Environment Variables.

Screenshot.

System Variables. Variable Path. Append value berikut:

C:\Program Files\OpenSSH for Windows\bin

Screenshot.

Restart mesin agar penambahan variable Path terimplementasi.

shutdown -r -t 0

Test dengan membuka command prompt, kemudian eksekusi command ls.

Screenshot.

Firewall

Masuk ke Windows Firewall. Run firewall.cpl.

Screenshot.

Tambahkan port 22 sebagai Exception pada Firewall.

Screenshot.

Banner

File banner cukup mengganggu sebagai welcome screen setelah login ssh. Sebaiknya kita singkirkan.

Edit file C:\Program Files\OpenSSH for Windows\etc\sshd_config dengan notepad++.

Lalu edit baris config dari:

# default banner path
Banner /etc/banner.txt

menjadi:

# default banner path
# Banner /etc/banner.txt

Alias matikan direct Banner dengan menjadikannya comment.

Restart daemon agar config reload. Buka command prompt:

net stop opensshd
net start opensshd

Test_SSH

Buka command prompt dan ssh ke diri sendiri.

ssh localhost

Sukses.

Screenshot.

Terminal yang terbuka adalah cmd dimana environmentnya adalah Windows.

Ciri khas environtment Windows adalah adanya command PATH.

Screenshot.

Untuk berpindah ke environment Linux, gunakan command bash.

Ciri khas environtment Linux adalah adanya command export dan directory khas root ls /.

bash-3.2$ export
...
declare -x PATH="/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/usr/bin:/usr/bin:/usr/bin"
...
bash-3.2$ ls /
bin  cygdrive  docs  etc  home  proc  tmp  usr  var
bash-3.2$ 

Multiuser

Setelah install, maka user yang digenerate pada OpenSSH for Windows versi ini hanya Administrator.

Buka file C:\Program Files\OpenSSH for Windows\etc\passwd dengan notepad++.

Screenshot.

Agar support multi user, maka kita perlu generate value pada file passwd agar support untuk user lainnya.

Buka command prompt, masuk ke:

cd C:\Program Files\OpenSSH for Windows\bin

Jalankan program mkpasswd.

mkpasswd -l > ../etc/passwd

Buka kembali program notepad++, muncul warning karena file passwd telah dimodifikasi (dalam kasus ini program mkpasswd telah memperbarui file passwd).

Screenshot.

Kini seluruh user dalam system termasuk (invisible account) tercatat dalam file passwd. Termasuk lokasi direktori /home yang kini per account sudah punya rumah masing-masing.

Screenshot.

Home_Directory

Directory atau folder /home masing-masing account perlu dibuat secara manual.

Untuk alasan kompatibilitas Linux di Windows, maka tiap user harus membuat home directory-nya masing-masing.

User Administrator-lah yang harus membuat /home/Administrator dan bukan yang lain.

User ijortengab-lah yang harus membuat /home/ijortengab dan bukan yang lain.

Mengapa? Agar kepemilikan home direktori sesuai dengan user yang bersangkutan.

User_Administrator

Saat ini session yang aktif adalah user Administrator.

Screenshot.

Masuk ke folder /home atau C:\Program Files\OpenSSH for Windows\home.

Screenshot.

Buat folder untuk user Administrator. Lalu copy paste file C:\Program Files\OpenSSH for Windows\home\bash_profile ke dalam folder tersebut.

Screenshot.

User_ijortengab

Log Off.

Screenshot.

Ganti user ke ijortengab.

Screenshot.

Ulangi pembuatan home direktori ijortengab oleh username ijortengab.

Masuk ke folder /home atau C:\Program Files\OpenSSH for Windows\home.

Buat folder untuk user ijortengab. Lalu copy paste file C:\Program Files\OpenSSH for Windows\home\bash_profile ke dalam folder tersebut.

Screenshot.

Test kepemilikan direktori home dengan command ls -l.

ssh localhost
bash
cd /home
ls -l

Output sebagai berikut:

drwx------+ 1 Administrator None  0 2017-09-14 22:03 Administrator
drwx------+ 1 ijortengab    None  0 2017-09-14 22:13 ijortengab

Terlihat bahwa mode permission setiap file atau folder yang dibuat selalu bernilai 700.

Test SSH Multiuser

Gunakan mesin lain untuk ssh ke server Windows XP.

Login sebagai user Administrator sukses.

Screenshot.

Login sebagai user ijortengab juga sukses.

Screenshot.

Reference