Pilot
Bagi yang baru belajar bermain-main dengan Linux terlebih lagi untuk urusan membuat server, tentunya akan sering berinteraksi dengan server dan pastinya akan repot kalau harus melulu pantaunya langsung didepan CPU dan monitor atau yah sekarang bisa saja pakai software remote seperti VNC atau TeamViewer tapi kan ini Linux Server yah, so it’s will be no GUI. mmmmm kayanya seru nih kalau bahas kenapa memilih Linux Server dibandingkan Windows Server, tapi lain kali aja deh.
Dan kalau sudah sering bolak-balik remote server menggunakan SSH login tentunya akan repot juga kalau setiap kali login harus ketik password, dah gitu passwordnya harus susah kan yah, masa passwordnya 1234567890 atau 12345qwerty atau 1qaz2wsx yang masih menggunakan pattern yang ada. Nah, kalau binggung, coba aja atuh mampir untuk password generator di KLoningSpoon -> PassGen. Nah, makanya nanti mau dibuat catatan juga gimana biar bisa remote otomatis login SSH ke server tanpa harus mengetikkan lagi password yang super susah.
mmmmm tadiannya sih cuma mau buat catatan tuk login SSH tanpa password, tapi dipikir-pikir, sekalian aja deh dari mulai proses instalasinya, hehehe. Daripada nanti bolak-balik cari artikel lain kan ya, mayan cape juga bolak-balik searching ke internet. Yuk, kita mulai.
Install SSH
Linux
SSH biasanya sudah menjadi prosedural dah kalau di Linux, kita baru install biasanya sudah aktif. Hampir semua distro Linux untuk SSH nya sudah aktif seperti Debian (beserta turunannya seperti Ubuntu dan turunannya), CentOS, Fedora, OpenSuse dan lain-lainnya, tapi nanti yang akan dibuat catatan hanya Debian dan CentOS aja yah, hehehe. Karena saya gak familiar sama Fedora, OpenSuse terlebih dengan FreeBSD. Maklumlah, newbie kita mah, padahal pengen banget belajar FreeBSD tapi kesempatan jua yang merenggangkan kita.
But, if there is any circumstances ternyata SSH nya belum aktif, bisa menggunakan perintah:
Debian / Ubuntu
Untuk install SSH di Debian, ketikkan perintah berikut:
Kemudian aktifkan servicenya agar bisa berjalan otomatis saat booting/restart dengan perintah:
CentOS
Untuk install SSH di CentOS/RHEL, ketikkan perintah berikut:
Kemudian aktifkan servicenya dengan perintah:
atau dengan perintah:
Kemudian cek apakah port 22 statusnya terbuka atau tidak dengan perintah:
Jika belum, kita bisa menambahkannya di iptables dengan cara buka terlebih dahulu filenya dengan perintah:
Kemudian tambahkan baris berikut:
Jika ingin hanya membolehkan akses SSH untuk IP tertentu atau subnet bisa tambahkan baris berikut:
Ganti IP 8.8.8.8 sesuai dengan yang diinginkan, bisa spesifik IP seperti diatas atau untuk 1 subnet, 10.0.7.0/24
Setelah itu restart iptables untuk mengaktifkan baris yang sudah kita tambah di iptables, dengan perintah:
mmmmm tapi kalau lebih senang buka portnya menggunakan firewalld seperti yang sudah saya ulas di CentOS 7 Tips & Trick bisa menggunakan perintah:
macOS
Kalau di macOS sudah ada bawaannya, tinggal diaktifkan aja melalui Preferences => Sharing => Remote Login
Raspbian
Untuk mengaktifkan SSH di Raspbian, klik Menu => Preferences => Raspberry Pi Configuration dan kemudian klik enable pada SSH.
Windows 10 1809 & Windows Server 2019
Sebetulnya sudah ada panduannya di docs.microsoft.com tapi dicatet aja disini biar gak bolak-balik cari, hehehe.
Menggunakan Settings UI
Untuk memulai install OpenSSH Server di Windows 10 1803 bisa klik start menu kemudian pilih Settings => Apps => Apps and Features => Optional features dan akan terlihat daftar aplikasi yang sudah terinstall. Biasanya OpenSSH Client sudah terinstall dan kita tinggal menambahkan OpenSSH Server dengan klik tombol + Add a feature dan kemudian scroll ke bawah sampai OpenSSH Server dan klik Install.
Menggunakan Powershell
Buka PowerShell sebagai Administrator dan kemudian ketik perintah berikut untuk cek terlebih dahulu feature OpenSSH:
Dan outputnya biasanya seperti berikut
Kalau melihat output, berarti dan memang biasanya OpenSSH Client sudah terinstall secara default, dan artinya kita tinggal install OpenSSH Server dengan perintah berikut:
Setelah menambahkan feature OpenSSH Server kita harus membuat rule agar OpenSSH Server dijalankan otomatis saat komputer mulai dan juga kita harus buka port OpenSSH Server di Firewall, yaitu dengan perintah:
Kemudian kita buat agar OpenSSH Server otomatis berjalan dibackground saat komputer start
Kemudian cek rule di Firewall apakah sudah ada rule untuk OpenSSH Server yang dibuat saat mengaktifkan OpenSSH Server.
Seharusnya sudah ada rule di Firewall dengan nama OpenSSH-Server-In-TCP dan dalam keadaan sudah aktif atau enabled.
Jika belum ada kita buat dengan perintah:
Windows 8 & Windows 7
Nah, saya coba prakteknya menggunakan Windows 7 Enterprise karena kebetulan HP ProLiant MicroServer N54L habis di install ulang. Dan karena sebelumnya pernah ngerasain scoop, jadinya pengen tahu deh gimana kalau install OpenSSH Server menggunakan scoop. Dan ternyata pengembaraan dimulai.
Cek Versi Powershell
Seingat saya scoop ini membutuhkan PowerShell 5 dan seingat saya msih ada file installernya yang sudah saya backup sebelum melakukan install ulang, karena memang kalau saya cek versi PowerShell di Windows 7 Enterprise ini kok lebih jauh yah dari Windows 7 Professional padahal sudah melakukan update.
Install .NET Framework dan PowerCore
Karena waktu ngoprek di Windows 7 Professional untuk merubah website menjadi aplikasi desktop versi major PowerShell nya versi 4. Akhirnya ya sudah langsung aja dicoba untuk upgrade PowerShell menggunakan installer sebelumnya tanpa download dulu ke Microsoft. Setelah minta restart tapinya kok malah ada keterangan …reverse update…, dan ketika cek dengan perintah $PSVersionTable.PSVersion di PowerShell, bener aja, ternyata yang gagal diupdate adalah Windows Management Framework 5.1 yang barusan dieksekusi, 2x gagal terus. Dan coba install dengan menjalankan dengan file Install-WMF5.1.ps1 ternyata malah error:
Akhirnya coba cek web resminya scoop, ternyata harus ada .NET Framework 4.5 atau terbaru dan juga harus ada PowerCore. Akhirnya coba download .NET, download deh yang terbaru, saat ini versi 4.8, setelah selesai install .net framework trus jadi penasaran sama disebelahnya .NET Core. Yang ternyata kalau melihat panduan Installing PowerShell Core On Windows, kita bisa install PowerCore dengan command, maksudnya ketik perintah di PowerShell bukan melalui UI, asalkan sudah terinstall .NET Core SDK. Ya sudah, install aja deh .NET Core SDK kalau itu maumu, xixixi.
Selesai install .NET Core SDK penasaran command dotnet itu gimana sih outputnya:
Oh ternyata begitu, ya nanti lagi deh, Insya Allah dioprek lagi kalau ada kesempatan, hehehe. Sewaktu download .NET Core SDK ada lihat di point ke 3 yaitu Hello World in 10 minutes tutorial. Weh, ternyata buat Hello World aja ampe 10 menit, wadidau, xixixi.
Install Powershell
Ya udah, lanjut aja deh dengan install PowerShell, buka PowerShell sebagai Administrator dan kemudian ketik perintah:
Berhasil dan outputnya seperti ini:
Install Windows Management Framework 5.1 (PowerShell)
Dan kemudian penasaran deh, coba cek lagi versi PowerShell nya dengan perintah $PSVersionTable.PSVersion dan ternyata masih versi 2 cuy, xixixi, kirain gitu jadi otomatis sekalian diah, hehehe. OK, kita lanjut dengan upgrade PowerShell menggunakan Windows Management Framework 5.1, tapi kali ini pengen coba pakai Install-WMF5.1.ps1 dengan sebelumnya merubah terlebih dahulu policy agar PowerShell bisa install melalui script dari luar, yaitu dengan perintah:
Pilihnya Y yah, jangan yang lainnya. Ketik command kok coba-coba, ya coba-coba lah ketik command, xixixi.
Setelah itu jalankan deh Install-WMF5.1.ps1, ya lumayan agak lama juga diah. Setelah minta restart dan ternyata tidak ada euy …reverse update…, wah berarti berhasil nih, dan coba deh cek versi PowerShell:
Install Scoop
Berhasil gaes, hehehe. Alhamdulillah. Selanjutnya tinggal install scoop dengan perintah iwr -useb get.scoop.sh | iex.
Install OpenSSH
OK, berarti lanjut dengan install OpenSSH dengan menggunakan scoop. Nah, saya mau cobanya menggunakan Command Prompt dan tidak dijalankan sebagai Administrator.
Alhamdulillah, berhasil gaes, wadidau. Sekarang kita coba test dari PC lain.
Wakwawww, ternyata gak bisa gaes, coba kita check firewallnya yah.
Buka Port 22
Menggunakan Powershell
Saya coba membuat rule di Firewall menggunakan PowerShell dengan perintah New-NetFirewallRule -Name sshd -DisplayName ‘OpenSSH Server (sshd)’ -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 tapi ternyata elor gaes:
Dan ternyata gagalnya karena perintah New-NetFirewallRule atau bahkan semua perintah xFirewall semuanya tidak bisa dijalankan di Windows 7, karena perintah ini hanya bisa dijalankan di Windows Server 2012/Windows 8 dan setelahnya.
Menggunakan Windows Firewall with Advanced Security
OK, kalau gitu kita coba buka port 22 dengan Windows Firewall with Advanced Security atau ❖ Win + R untuk membuka Run Program Window dan ketikkan wf.msc untuk membuka Windows Firewall with Advanced Security settings.
- Klik pada Inbound Rule kita buat New Rule, menu linknya ada disebalah kanan.
- Pada jendela wizard, pilih Rule Typenya adalah Port dan klik Next
- Dan di step Protocl and Ports pilih TCP dan pilih Specific local ports dan isi dengan 22 dan kemudian klik Next
- Dan di step Action pilih Allow the connection, kemudian klik Next
- Untuk step Profile ceklis semuanya aja deh, Domain, Private dan Publicdan kemudian klik Next
- Dan di step Name, kasih nama rule yang kita buat, misal OpenSSH Server (sshd), kalau mau kasih deskripsi juga boleh. bole bole bole boleee, hehehe. Misal isi dengan OpenSSH installed with scoop dan kemudian klik Finish.
Dan kemudian saya test kembali dari laptop/pc lain, ternyata masih gagal gaes, hehehe. mmmmm penasaran gimana kalau dari lokal:
Dan sepertinya OpenSSH Servernya belum running kalau begini mah.
Kemudian saya coba membuat services untuk menjalankan sshd dan ssh-agent dengan perintah:
Dan kemudian saya start service tersebut dengan perintah Start-Service sshd, tapi error:
mmmmm kalau gitu saya coba aktifkan melalui Services UI nya aja deh, yaitu di Control Panel => System and Security => Administrative Tools => Services, kemudian saya scroll sampai menemukan services yang tadi sudah dibuat dengan nama OpenSSH Server dan kemudian saya klik kanan dan pilih Start. Dan ternyata, wadidau, error euy:
Sudah saya coba restart berkali-kali tapi masih sama aja, eyoy. Entahlah, jadi binggung, hehehe. Ya sudahlah, kalau gitu kita hapus saja services yang barusan dibuat, dengan perintah:
OK, kita coba cari aplikasi apa saja yang terdaftar di scoop yang berkaitan dengan ssh, carinya dengan perintah scoop search ssh, dan hasilnya:
hmmmm, ternyata ada 2 gaes aplikasi ssh ini, yaitu openssh (7.6p1) dan win32-openssh (8.1.0.0p1-Beta). OK, kalau gitu kita coba yang win32-openssh. Saya gak mau uninstall openssh yang sebelumnya sudah diinstall menggunakan scoop karena ternyata didalamnya sudah ada ssh-copy-id dimana tools ini berguna banget agar nanti kita bisa login ssh tanpa password.
OK, kita install win32-openssh dengan perintah scoop install win32-openssh, jadinya:
OK, setelah itu saya buka PowerShell sebagai Administrator dan kemudian masuk ke directory C:\Users\Darto\scoop\apps\win32-openssh\current dan kemudian jalankan install-sshd.ps1 dan hasilnya:
Dan akhirnya berhasil juga, hehehe. Kalau gitu dicoba aja deh langsung menjalankan services nya dengan perintah Start-Service ssh-agent dan hasilnya:
mmmm berhasil juga. Dan kemudian dicoba deh tuk login ssh dari laptop. Wadidau, ternyata masih error, Connection reset …. Ish ish ish ish. HAHAHA. Rempong kali ini proses, hehehe.
Saya coba restart. Setelah itu saya coba login ssh dari laptop dan ternyata conection time out, well well well…. Saya cek kembali services OpenSSH Server di Control Panel => System and Security => Administrative Tools=> Services dan ternyata belum Start dan sekalian saja saya buat Startup type nya menjadi Automatic, begitu juga untuk OpenSSH Authentication Agent, dan kemudian saya coba start, eh eh eh, dan ternyata kalau services yang ini berhasil dan tidak ada error 1503.
OK, kemudian saya coba login ssh dari laptop, ternyata error connection reset, wadidaw, HAHAHA.
mmmmm kemudian coba lihat apa yang terjadi dengan menjalankan perintah sshd -d menggunakan Command Prompt yang dijalankan sebagai Administrator, hasilnya:
Ada elor gaes. Saya sudah coba kasih password tuk akunnya, karena sekarang cuma ada satu akun saja dan tanpa menggunakan password. Setelah restart masih elor juga dan kalau dilihat pakai sshd -d error nya masih sama.
Kemudian saya coba jalankan perintah for %f in (%ProgramData%\ssh\ssh_host_*_key) do @C:\Users\Darto\scoop\apps\win32-openssh\current\ssh-keygen.exe -l -f “%f”, hasilnya adalah:
Coba login ssh dari laptop ternyata hasilnya masih connection reset.
OK. I GIVE UP. I will use standard installation.
We need to clean up the mess. Stop sshd dan ssh-agent di Control Panel => System and Security => Administrative Tools => Services, kemudian buka PowerShell sebagai Administrator dan kemudian jalankan perintah C:\Users\Darto\scoop\apps\win32-openssh\current\uninstall-sshd.ps1 untuk menghapus service sshd dan ssh-agent.
Kemudian jalankan perintah scoop uninstall win32-openssh dan scoop uninstall openssh untuk menghapus OpenSSH Server yang kita install menggunakan scoop.
Setelah itu kita lakukan seperti cara biasanya aja, xixixi. Yeah, I know the way, hehehe.
- Download OpenSSH untuk Windows. Sesuaikan dengan versi Windowsyang kita install, apakah 32bit atau 64bit
- Extract di Program Files dan jika menggunakan versi 64bit rubah foldernya menjadi OpenSSH.
- Buka PowerShell sebagai Administrator
- Jalankan perintah powershell.exe -ExecutionPolicy Bypass -File ‘C:\Program Files\OpenSSH\install-sshd.ps1 untuk menjalankan sshd dan ssh-agent sebagai services yang keuntungannya adalah nantinya bisa kita atur agar bisa berjalan otomatis saat komputer booting dan kali ini tidak ada lagi keterangan **** Warning: Publisher OpenSSH resources are not accessible.
- Buka Services setting dengan mengetikkan services.msc di PowerShell
- Scroll sampai menemukan OpenSSH Authentication Agent dan OpenSSH SSH Server
- Rubah Startup type keduanya menjadi Automatic dan kemudian Startkeduanya
- Buka port 22. Sebelumnya sudah disetting di Buka port 22, berarti kita bisa lewatkan.
- Kemudian jalankan perintah di PowerShell yaitu Get-ChildItem $env:ProgramData\ssh\ssh_host_*_key | ForEach-Object { . $env:ProgramFiles\OpenSSH\ssh-keygen.exe -l -f $_ } atau jika menggunakan Command Prompt perintahnya adalah for %f in (%ProgramData%\ssh\ssh_host_*_key) do @%ProgramFiles%\OpenSSH\ssh-keygen.exe -l -f “%f”
- Kita perlu menambahkan PATH dari %ProgramFiles%\OpenSSH agar nantinya kita bisa mengetikkan perintah ssh di Command Prompt atau PowerShell. Ketikkan SystemPropertiesAdvanced di PowerShelldan kemudian klik Environment Variables dan klik pada PATH dan klik Edit dan masukkan pada perintah terakhir dengan ;C:\Program Files\OpenSSH kemudian klik OK untuk mengakhiri Edit User Variable Path dan kemudian klik OK lagi untuk mengakhiri Environment Variables.
OK. Selesai. Setelah dicoba di laptop atau bahkan di local, OpenSSH Server mengirimkan tanda-tanda kehidupan, hehehe, finally, Alhamdulillah. Selesai sudah perjalanan panjang install OpenSSH Server di Windows 7.
Login SSH Tanpa Password
Windows
Saya menggunakan Command Prompt atau PowerShell, tidak menggunakan console lain seperti Cmder, MobaXterm atau Putty dan lain-lainnya. Kalau menggunakan selain CMD atau PowerShell bisa mengikuti caranya seperti di Linux.
Generate ssh-keygen
- Buka Command Prompt atau PowerShell; gak perlu buka sebagai Administrator juga gak papa.
- Ketikkan perintah ssh-keygen untuk membuat id unik yang digunakan sebagai akses ke SSH Server
- Ikuti prosesnya dengan hanya enter enter aja sampai terakhir
- Proses ini akan menghasilkan 2 file yaitu id_rsa dan id_rsa.pub yang berada di user\.ssh.
Copy id_rsa.pub didalam authorized_keys Server SSH
Ketikkan perintah:
tapi jika mengalami error bash: .ssh/authorized_keys: No such file or directory gunakan perintah dibawah ini:
sesuaikan user root dan IP 10.0.7.4 dari server yang ingin kita remote.
Kemudian masukkan password untuk user root di server 10.0.7.4.
Jika password yang kita masukkan benar maka prosesnya selesai.
Kemudian kita coba kembali untuk login ssh menggunakan cara biasa, yaitu ssh root@10.0.7.4 dan kita tidak akan diminta password kembali untuk proses selanjutnya karena kita sudah memasukkan ID unik kita sebagai yang mendapatkan autorisasi.