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.

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:

Untuk install SSH di Debian, ketikkan perintah berikut:

sudo apt install openssh-server openssh-clients

Kemudian aktifkan servicenya agar bisa berjalan otomatis saat booting/restart dengan perintah:

sudo systemctl start ssh
sudo systemctl enable ssh

Untuk install SSH di CentOS/RHEL, ketikkan perintah berikut:

yum install openssh-server openssh-clients

Kemudian aktifkan servicenya dengan perintah:

systemctl start sshd
systemctl enable sshd

atau dengan perintah:

chkconfig sshd on
service sshd start

Kemudian cek apakah port 22 statusnya terbuka atau tidak dengan perintah:

netstat –tulpn | grep :22

Jika belum, kita bisa menambahkannya di iptables dengan cara buka terlebih dahulu filenya dengan perintah:

vi /etc/sysconfig/iptables

Kemudian tambahkan baris berikut:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

Jika ingin hanya membolehkan akses SSH untuk IP tertentu atau subnet bisa tambahkan baris berikut:

-A RH-Firewall-1-INPUT -s 8.8.8.8 -m state --state NEW -p tcp --dport 2002 -j ACCEPT

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:

service iptables restart

mmmmm tapi kalau lebih senang buka portnya menggunakan firewalld seperti yang sudah saya ulas di CentOS 7 Tips & Trick bisa menggunakan perintah:

firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --reload

Kalau di macOS sudah ada bawaannya, tinggal diaktifkan aja melalui Preferences => Sharing => Remote Login

Untuk mengaktifkan SSH di Raspbian, klik Menu => Preferences => Raspberry Pi Configuration dan kemudian klik enable pada SSH.

Kali kalau butuh tuk remote desktopnya bisa juga diaktifkan VNC nya

Sebetulnya sudah ada panduannya di docs.microsoft.com tapi dicatet aja disini biar gak bolak-balik cari, hehehe.

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

Buka PowerShell sebagai Administrator dan kemudian ketik perintah berikut untuk cek terlebih dahulu feature OpenSSH:

get-windowscapability -online | ? name -like 'OpenSSH*'

Dan outputnya biasanya seperti berikut

Name  : OpenSSH.Client~~~~0.0.1.0
State : Installed

Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

Kalau melihat output, berarti dan memang biasanya OpenSSH Client sudah terinstall secara default, dan artinya kita tinggal install OpenSSH Server dengan perintah berikut:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Untuk penulisan perintah gak harus juga sih kapital begitu, perintahnya gak case sensitive, yang penting asal bener aja, hehehe, gak harus awal dengan huruf besar dan setelahnya huruf kecil. Dikebanyakan tutorial memang sering sih dibedakan begitu tapi saya sering menggunakannya dengan huruf kecil semua dan berjalan lancar, biasa aja, hehehe.

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:

Start-Service sshd

Kemudian kita buat agar OpenSSH Server otomatis berjalan dibackground saat komputer start

Set-Service -Name sshd -StartupType 'Automatic'

Kemudian cek rule di Firewall apakah sudah ada rule untuk OpenSSH Server yang dibuat saat mengaktifkan OpenSSH Server

Get-NetFirewallRule -Name *ssh*

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:

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

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.

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.

Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.

PS C:\Windows\system32> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
2      0      -1     -1

PS C:\Windows\system32>

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:

PS C:\Users\Darto\Downloads\Win7AndW2K8R2-KB3191566-x64> .\Install-WMF5.1.ps1
File C:\Users\Darto\Downloads\Win7AndW2K8R2-KB3191566-x64\Install-WMF5.1.ps1 cannot be loaded because the execution of
scripts is disabled on this system. Please see "get-help about_signing" for more details.
At line:1 char:21
+ .\Install-WMF5.1.ps1 <<<<
    + CategoryInfo          : NotSpecified: (:) [], PSSecurityException
    + FullyQualifiedErrorId : RuntimeException

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:

Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.

PS C:\Windows\system32> dotnet

Usage: dotnet [options]
Usage: dotnet [path-to-application]

Options:
  -h|--help         Display help.
  --info            Display .NET Core information.
  --list-sdks       Display the installed SDKs.
  --list-runtimes   Display the installed runtimes.

path-to-application:
  The path to an application .dll file to execute.

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.

Ya udah, lanjut aja deh dengan install PowerShell, buka PowerShell sebagai Administrator dan kemudian ketik perintah:

dotnet tool install --global PowerShell

Berhasil dan outputnya seperti ini:

PS C:\Windows\system32> dotnet tool install --global PowerShell

Welcome to .NET Core 3.1!
---------------------
SDK Version: 3.1.100

Telemetry
---------
The .NET Core tools collect usage data in order to help us improve your experience. The data is anonymous. It is collect
ed by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT e
nvironment variable to '1' or 'true' using your favorite shell.

Read more about .NET Core CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry

----------------
Explore documentation: https://aka.ms/dotnet-docs
Report issues and find source on GitHub: https://github.com/dotnet/core
Find out what's new: https://aka.ms/dotnet-whats-new
Learn about the installed HTTPS developer cert: https://aka.ms/aspnet-core-https
Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli-docs
Write your first app: https://aka.ms/first-net-core-app
--------------------------------------------------------------------------------------
Since you just installed the .NET Core SDK, you will need to reopen the Command Prompt window before running the tool yo
u installed.
You can invoke the tool using the following command: pwsh
Tool 'powershell' (version '6.2.3') was successfully installed.

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:

PS C:\Users\Darto\Downloads\Win7AndW2K8R2-KB3191566-x64> set-executionpolicy remotesigned

Execution Policy Change
The execution policy helps protect you from scripts that you do not trust. Changing the execution policy might expose
you to the security risks described in the about_Execution_Policies help topic. Do you want to change the execution
policy?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): Y

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:

Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.

PS C:\Windows\system32> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      14409  1018

PS C:\Windows\system32>

Berhasil gaes, hehehe. Alhamdulillah. Selanjutnya tinggal install scoop dengan perintah iwr -useb get.scoop.sh | iex.

PS C:\Windows\system32> iwr -useb get.scoop.sh | iex
Initializing...
Downloading scoop...
Extracting...
Creating shim...
Downloading main bucket...
Extracting...
Adding ~\scoop\shims to your path.
'lastupdate' has been set to '2019-12-20T06:11:33.8040216+07:00'
Scoop was installed successfully!
Type 'scoop help' for instructions.

OK, berarti lanjut dengan install OpenSSH dengan menggunakan scoop. Nah, saya mau cobanya menggunakan Command Prompt dan tidak dijalankan sebagai Administrator.

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\Darto>scoop install openssh
Installing '7zip' (19.00) [64bit]
7z1900-x64.msi (1.7 MB) [=============================================] 100%
Checking hash of 7z1900-x64.msi ... ok.
Extracting 7z1900-x64.msi ... done.
Linking ~\scoop\apps\7zip\current => ~\scoop\apps\7zip\19.00
Creating shim for '7z'.
Creating shortcut for 7-Zip (7zFM.exe)
'7zip' (19.00) was installed successfully!
Installing 'openssh' (7.6p1) [64bit]
gcc-libs-6.4.0-1-x86_64.pkg.tar.xz (821.9 KB) [=======================] 100%
Checking hash of gcc-libs-6.4.0-1-x86_64.pkg.tar.xz ... ok.
heimdal-1.5.3-9-x86_64.pkg.tar.xz (546.6 KB) [========================] 100%
Checking hash of heimdal-1.5.3-9-x86_64.pkg.tar.xz ... ok.
heimdal-libs-1.5.3-9-x86_64.pkg.tar.xz (592.7 KB) [===================] 100%
Checking hash of heimdal-libs-1.5.3-9-x86_64.pkg.tar.xz ... ok.
icu-59.1-1-x86_64.pkg.tar.xz (7.3 MB) [===============================] 100%
Checking hash of icu-59.1-1-x86_64.pkg.tar.xz ... ok.
libcrypt-2.1-1-x86_64.pkg.tar.xz (32.1 KB) [==========================] 100%
Checking hash of libcrypt-2.1-1-x86_64.pkg.tar.xz ... ok.
libdb-5.3.28-2-x86_64.pkg.tar.xz (656.4 KB) [=========================] 100%
Checking hash of libdb-5.3.28-2-x86_64.pkg.tar.xz ... ok.
libedit-3.1-20170329-x86_64.pkg.tar.xz (96.9 KB) [====================] 100%
Checking hash of libedit-3.1-20170329-x86_64.pkg.tar.xz ... ok.
libopenssl-1.0.2.m-1-x86_64.pkg.tar.xz (1,022.5 KB) [=================] 100%
Checking hash of libopenssl-1.0.2.m-1-x86_64.pkg.tar.xz ... ok.
libreadline-7.0.003-1-x86_64.pkg.tar.xz (266.8 KB) [==================] 100%
Checking hash of libreadline-7.0.003-1-x86_64.pkg.tar.xz ... ok.
libsqlite-3.19.3.0-2-x86_64.pkg.tar.xz (564.3 KB) [===================] 100%
Checking hash of libsqlite-3.19.3.0-2-x86_64.pkg.tar.xz ... ok.
msys2-runtime-2.9.0-2-x86_64.pkg.tar.xz (2.4 MB) [====================] 100%
Checking hash of msys2-runtime-2.9.0-2-x86_64.pkg.tar.xz ... ok.
ncurses-6.0.20170708-2-x86_64.pkg.tar.xz (1.1 MB) [===================] 100%
Checking hash of ncurses-6.0.20170708-2-x86_64.pkg.tar.xz ... ok.
openssh-7.6p1-1-x86_64.pkg.tar.xz (679.9 KB) [========================] 100%
Checking hash of openssh-7.6p1-1-x86_64.pkg.tar.xz ... ok.
zlib-1.2.11-1-x86_64.pkg.tar.xz (55.1 KB) [===========================] 100%
Checking hash of zlib-1.2.11-1-x86_64.pkg.tar.xz ... ok.
bash-4.4.012-1-x86_64.pkg.tar.xz (1.9 MB) [===========================] 100%
Checking hash of bash-4.4.012-1-x86_64.pkg.tar.xz ... ok.
Extracting gcc-libs-6.4.0-1-x86_64.pkg.tar.xz ... done.
Extracting heimdal-1.5.3-9-x86_64.pkg.tar.xz ... done.
Extracting heimdal-libs-1.5.3-9-x86_64.pkg.tar.xz ... done.
Extracting icu-59.1-1-x86_64.pkg.tar.xz ... done.
Extracting libcrypt-2.1-1-x86_64.pkg.tar.xz ... done.
Extracting libdb-5.3.28-2-x86_64.pkg.tar.xz ... done.
Extracting libedit-3.1-20170329-x86_64.pkg.tar.xz ... done.
Extracting libopenssl-1.0.2.m-1-x86_64.pkg.tar.xz ... done.
Extracting libreadline-7.0.003-1-x86_64.pkg.tar.xz ... done.
Extracting libsqlite-3.19.3.0-2-x86_64.pkg.tar.xz ... done.
Extracting msys2-runtime-2.9.0-2-x86_64.pkg.tar.xz ... done.
Extracting ncurses-6.0.20170708-2-x86_64.pkg.tar.xz ... done.
Extracting openssh-7.6p1-1-x86_64.pkg.tar.xz ... done.
Extracting zlib-1.2.11-1-x86_64.pkg.tar.xz ... done.
Extracting bash-4.4.012-1-x86_64.pkg.tar.xz ... done.
Running pre-install script...

    Directory: C:\Users\Darto\scoop\apps\openssh\7.6p1

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       12/20/2019   6:22 AM                tmp
d-----       12/20/2019   6:22 AM                home

    Directory: C:\Users\Darto\scoop\apps\openssh\7.6p1\home

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       12/20/2019   6:22 AM                Darto

    Directory: C:\Users\Darto

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       12/18/2019   5:11 PM                .ssh
Junction created for C:\Users\Darto\scoop\apps\openssh\7.6p1\home\Darto\.ssh <<=
==>> C:\Users\Darto\.ssh
Linking ~\scoop\apps\openssh\current => ~\scoop\apps\openssh\7.6p1
Creating shim for 'findssl.sh'.
Creating shim for 'scp'.
Creating shim for 'sftp'.
Creating shim for 'ssh'.
Creating shim for 'ssh-add'.
Creating shim for 'ssh-agent'.
Creating shim for 'ssh-copy-id'.
Creating shim for 'ssh-keygen'.
Creating shim for 'ssh-keyscan'.
Creating shim for 'sshd'.
'openssh' (7.6p1) was installed successfully!

C:\Users\Darto>

Alhamdulillah, berhasil gaes, wadidau. Sekarang kita coba test dari PC lain.

C:\Users\darto>ssh darto@10.0.7.3
ssh: connect to host 10.0.7.3 port 22: Connection timed out

Wakwawww, ternyata gak bisa gaes, coba kita check firewallnya yah.

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:

PS C:\Windows\system32> New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
New-NetFirewallRule : The term 'New-NetFirewallRule' is not recognized as the name of a cmdlet, function, script file,
or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and
try again.
At line:1 char:1
+ New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' - ...
+ ~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (New-NetFirewallRule:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

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.

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.

  1. Klik pada Inbound Rule kita buat New Rule, menu linknya ada disebalah kanan.
  2. Pada jendela wizard, pilih Rule Typenya adalah Port dan klik Next
  3. Dan di step Protocl and Ports pilih TCP dan pilih Specific local ports dan isi dengan 22 dan kemudian klik Next
  4. Dan di step Action pilih Allow the connection, kemudian klik Next
  5. Untuk step Profile ceklis semuanya aja deh, Domain, Private dan Public dan kemudian klik Next
  6. 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:

C:\Users\Darto>ssh darto@localhost
ssh: connect to host localhost port 22: Connection refused

Dan sepertinya OpenSSH Servernya belum running kalau begini mah.

Kemudian saya coba membuat services untuk menjalankan sshd dan ssh-agent dengan perintah:

sc create sshd DisplayName= "OpenSSH Server" type= share start= auto binpath= C:\Users\Darto\scoop\apps\openssh\current\usr\bin\sshd.exe
sc create ssh-agent DisplayName= "OpenSSH Authentication Agent" type= share start= auto binpath= C:\Users\Darto\scoop\apps\openssh\current\usr\bin\ssh-agent.exe

Dan kemudian saya start service tersebut dengan perintah Start-Service sshd, tapi error:

PS C:\Users\Darto\scoop\apps\openssh\current\usr\bin> Start-Service sshd
Start-Service : Service 'OpenSSH SSH Server (sshd)' cannot be started due to the following error: Cannot start service
sshd on computer '.'.
At line:1 char:1
+ Start-Service sshd
+ ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service],
   ServiceCommandException
    + FullyQualifiedErrorId : CouldNotStartService,Microsoft.PowerShell.Commands.StartServiceCommand

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:

Windows could not start the OpenSSH Server service on Local Computer.

Error 1053: The service did not respond to the start or control request in a timely fashion.

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:

sc delete sshd
sc delete ssh-agent

OK, kita coba cari aplikasi apa saja yang terdaftar di scoop yang berkaitan dengan ssh, carinya dengan perintah scoop search ssh, dan hasilnya:

C:\Windows\system32>scoop search ssh
'main' bucket:
    git-with-openssh (2.24.1.windows.2)
    gow (0.8.0) --> includes 'ssh.bat'
    mls-software-openssh (8.1p1-1)
    openssh (7.6p1)
    ssh-copy-id (2015-03-22)
    win32-openssh (8.1.0.0p1-Beta)

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:

C:\Windows\system32>scoop install win32-openssh
Installing 'win32-openssh' (8.1.0.0p1-Beta) [64bit]
OpenSSH-Win64.zip (3.3 MB) [==========================================] 100%
Checking hash of OpenSSH-Win64.zip ... ok.
Extracting OpenSSH-Win64.zip ... done.
Linking ~\scoop\apps\win32-openssh\current => ~\scoop\apps\win32-openssh\8.1.0.0
p1-Beta
Creating shim for 'scp'.
WARN  Overwriting shim to scp.exe installed from openssh
Creating shim for 'sftp'.
WARN  Overwriting shim to sftp.exe installed from openssh
Creating shim for 'sftp-server'.
Creating shim for 'ssh-add'.
WARN  Overwriting shim to ssh-add.exe installed from openssh
Creating shim for 'ssh-agent'.
WARN  Overwriting shim to ssh-agent.exe installed from openssh
Creating shim for 'ssh-keygen'.
WARN  Overwriting shim to ssh-keygen.exe installed from openssh
Creating shim for 'ssh-keyscan'.
WARN  Overwriting shim to ssh-keyscan.exe installed from openssh
Creating shim for 'ssh-shellhost'.
Creating shim for 'ssh'.
WARN  Overwriting shim to ssh.exe installed from openssh
Creating shim for 'sshd'.
WARN  Overwriting shim to sshd.exe installed from openssh
'win32-openssh' (8.1.0.0p1-Beta) was installed successfully!
Notes
-----
This is a pre-release (non-production ready)
Run 'sudo C:\Users\Darto\scoop\apps\win32-openssh\current\install-sshd.ps1' to
install sshd and ssh-agent as a service.
Run 'sudo C:\Users\Darto\scoop\apps\win32-openssh\current\uninstall-sshd.ps1'
them service.

Sebetulnya saya mengulangi proses ini sampai 3x, dan yang ke-3 baru berhasil. Ya mungkin koneksinya aja.

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:

PS C:\Users\Darto\scoop\apps\win32-openssh\current> .\install-sshd.ps1
**** Warning: Publisher OpenSSH resources are not accessible.

[SC] SetServiceObjectSecurity SUCCESS
[SC] ChangeServiceConfig2 SUCCESS
[SC] ChangeServiceConfig2 SUCCESS
sshd and ssh-agent services successfully installed

Dan akhirnya berhasil juga, hehehe. Kalau gitu dicoba aja deh langsung menjalankan services nya dengan perintah Start-Service ssh-agent dan hasilnya:

PS C:\Users\Darto\scoop\apps\win32-openssh\current> Start-Service sshd
WARNING: Waiting for service 'OpenSSH SSH Server (sshd)' to start...

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:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Windows\system32>sshd -d
debug1: sshd version OpenSSH_for_Windows_8.1, LibreSSL 2.9.2
debug1: get_passwd: LookupAccountName() failed: 1332.
debug1: private host key #0: ssh-rsa SHA256:Wx+RZJ0F6ewiAmwJ6n0V7CJlOGAuj4zqj4S+
FkSYHOs
debug1: private host key #1: ecdsa-sha2-nistp256 SHA256:xMIa3vpco9lmoyDd7TLKPRG4
P9rW4uHgl3Pt28lxg8Q
debug1: private host key #2: ssh-ed25519 SHA256:YZozDoz1gz4Fgpl+Dsjn56VJ/8LQrTwt
MoxUXglMq7Q
debug1: rexec_argv[0]='C:\\Users\\Darto\\scoop\\apps\\win32-openssh\\current\\ss
hd.exe'
debug1: rexec_argv[1]='-d'
debug1: Bind to port 22 on ::.
Server listening on :: port 22.
debug1: Bind to port 22 on 0.0.0.0.
Server listening on 0.0.0.0 port 22.

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:

C:\Windows\system32>for %f in (%ProgramData%\ssh\ssh_host_*_key) do @C:\Users\Darto\scoop\apps\win32-openssh\current\ssh-keygen.exe -l -f "%f"
1024 SHA256:N8hFyaNi69wWKSPfJhG28ubIccLxJAhHeXju2uIpGLc nt authority\system@DartoNAS (DSA)
256 SHA256:xMIa3vpco9lmoyDd7TLKPRG4P9rW4uHgl3Pt28lxg8Q nt authority\system@DartoNAS (ECDSA)
256 SHA256:YZozDoz1gz4Fgpl+Dsjn56VJ/8LQrTwtMoxUXglMq7Q nt authority\system@DartoNAS (ED25519)
3072 SHA256:Wx+RZJ0F6ewiAmwJ6n0V7CJlOGAuj4zqj4S+FkSYHOs nt authority\system@DartoNAS (RSA)

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.

  1. Download OpenSSH untuk Windows. Sesuaikan dengan versi Windows yang kita install, apakah 32bit atau 64bit
  2. Extract di Program Files dan jika menggunakan versi 64bit rubah foldernya menjadi OpenSSH.
  3. Buka PowerShell sebagai Administrator
  4. 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.
  5. Buka Services setting dengan mengetikkan services.msc di PowerShell
  6. Scroll sampai menemukan OpenSSH Authentication Agent dan OpenSSH SSH Server
  7. Rubah Startup type keduanya menjadi Automatic dan kemudian Start keduanya
  8. Buka port 22. Sebelumnya sudah disetting di Buka port 22, berarti kita bisa lewatkan.
  9. 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"
  10. Kita perlu menambahkan PATH dari %ProgramFiles%\OpenSSH agar nantinya kita bisa mengetikkan perintah ssh di Command Prompt atau PowerShell. Ketikkan SystemPropertiesAdvanced di PowerShell dan 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 VariablePath 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.

INTINYA: sepertinya PowerShell ini tidak bisa di install di direktori selain Program Files, karena di install di folder lain selalu mengalami kegagalan.

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.

  1. Buka Command Prompt atau PowerShell; gak perlu buka sebagai Administrator juga gak papa.
  2. Ketikkan perintah ssh-keygen untuk membuat id unik yang digunakan sebagai akses ke SSH Server
  3. Ikuti prosesnya dengan hanya enter enter aja sampai terakhir
  4. Proses ini akan menghasilkan 2 file yaitu id_rsa dan id_rsa.pub yang berada di user\.ssh.

  1. ketikkan perintah

Updated at: *Wed, Jan 8, 2020 12:16 AM => short command to login ssh without password

type .ssh\id_rsa.pub | ssh root@10.0.7.4 'cat >> .ssh/authorized_keys'

tapi jika mengalami error bash: .ssh/authorized_keys: No such file or directory gunakan perintah dibawah ini:

type .ssh\id_rsa.pub | ssh root@10.0.7.4 "[ ! -d ~/.ssh ] && mkdir ~/.ssh && chmod 700 ~/.ssh; cat >> ~/.ssh/authorized_keys && sort -u ~/.ssh/authorized_keys -o ~/.ssh/authorized_keys && chmod 700 ~/.ssh/authorized_keys"

sesuaikan user root dan IP 10.0.7.4 dari server yang ingin kita remote

  1. Kemudian masukkan password untuk user root di server 10.0.7.4
  2. Jika password yang kita masukkan benar maka prosesnya selesai
  3. 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.

Jika ingin menggunakan Putty mungkin bisa menggunakan PuTTY Tray yang sudah menggabungkan pageant.exe dan puttygen.exe menjadi satu di putty.exe

id_rsa dan id_rsa.pub ini sebetulnya bisa dicopy ke komputer mana saja yang kita inginkan asal berada di path user\.ssh agar kita bisa login ssh ke server tanpa password di komputer yang berbeda-beda. But this is danger method, hehehe.

Related Posts