Secure Shell (SSH) adalah protokol jaringan kriptografi yang digunakan untuk koneksi terenkripsi antara klien dan server. SSH client membuat koneksi aman ke SSH server pada mesin jarak jauh. Koneksi terenkripsi dapat digunakan untuk menjalankan perintah di server, tunneling X11, port forwarding, dan banyak lagi.

Ada sejumlah SSH client yang tersedia secara gratis dan komersial, dengan OpenSSH menjadi klien yang paling banyak digunakan. Ini tersedia di semua platform, termasuk Linux, OpenBSD, Windows, macOS dan lainnya.

Pada artikel ini, kami akan menjelaskan cara menggunakan OpenSSH client (ssh) di baris perintah untuk masuk ke mesin jarak jauh dan menjalankan perintah atau melakukan operasi lain.

Instal OpenSSH Client

Program OpenSSH client disebut ssh dan dapat dipanggil dari terminal. Paket OpenSSH client juga menyediakan utilitas SSH lain seperti scp dan sftp yang diinstal di samping perintah ssh.

Install OpenSSH Client di Linux

Klien OpenSSH sudah diinstal pada sebagian besar distribusi Linux secara default. Jika sistem Anda tidak ada ssh client, Anda dapat menginstalnya menggunakan package manager distribusi Anda.

Install OpenSSH di Ubuntu dan Debian

sudo apt update
sudo apt install openssh-client

Install OpenSSH pada CentOS dan Fedora

sudo dnf install openssh-clients

Install OpenSSH Client pada Windows 10

Sebagian besar user Windows menggunakan Putty untuk terhubung ke mesin jarak jauh melalui SSH. Namun, versi terbaru dari Windows 10 sudah terdapat OpenSSH client dan server. Kedua paket dapat diinstal melalui GUI atau PowerShell.

Untuk menemukan nama persis paket OpenSSH, ketikkan perintah berikut:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Perintah diatas akan mengembalikan output kurang lebih seperti ini:

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

Setelah Anda tahu nama paket instal dengan jalankan:

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

Jika berhasil, hasilnya akan terlihat seperti ini:

Path          :
Online        : True
RestartNeeded : False

Instal OpenSSH Client pada macOS

macOS dikirimkan bersama OpenSSH client yang terinstal secara default.

Cara Menggunakan Perintah ssh

Persyaratan berikut harus dipenuhi untuk dapat masuk ke mesin jarak jauh melalui SSH:

  • SSH Server harus dijalankan pada mesin jarak jauh.
  • Port SSH harus terbuka di firewall mesin jarak jauh.
  • Anda harus mengetahui nama user dan kata sandi akun jarak jauh. Akun harus memiliki hak istimewa yang tepat untuk login jarak jauh.

Sintaks dasar dari perintah ssh adalah sebagai berikut:

ssh [OPTIONS] [USER@]:HOST

Untuk menggunakan perintah ssh, buka Terminal atau PowerShell Anda dan ketik ssh diikuti dengan nama host jarak jauh:

ssh ssh.linuxid.net

Saat Anda terhubung ke mesin jarak jauh melalui SSH untuk pertama kalinya, Anda akan melihat pesan seperti di bawah ini.

The authenticity of host 'ssh.linuxid.net (192.168.121.111)' can't be established.
ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY.
Are you sure you want to continue connecting (yes/no)?

Setiap host memiliki sidik jari unik yang disimpan dalam file ~/.ssh/known_hosts

Ketik yes untuk menyimpan sidik jari jarak jauh, dan Anda akan diminta memasukkan kata sandi.

Warning: Permanently added 'ssh.linuxid.net' (ECDSA) to the list of known hosts.

[email protected]'s password:

Setelah Anda memasukkan kata sandi, Anda akan masuk ke mesin jarak jauh.

Ketika nama user tidak diberikan, perintah ssh menggunakan username yang login pada sistem lokal.

Untuk masuk sebagai pengguna yang berbeda, tentukan nama pengguna dan host dalam format berikut:

ssh username@hostname

Nama pengguna juga dapat ditentukan dengan opsi -l:

ssh -l username hostname

Secara default, ketika tidak ada port yang diberikan, SSH client akan mencoba untuk terhubung ke server jauh pada port 22. Pada beberapa server, administrator mengubah port SSH default untuk menambahkan lapisan keamanan tambahan ke server dengan mengurangi risiko serangan otomatis.

Untuk terhubung pada port non-default, gunakan opsi -p untuk menentukan port:

ssh -p 15522 username@hostname

Jika Anda mengalami masalah otentikasi atau koneksi, gunakan opsi -v untuk memberitahu ssh untuk mencetak pesan debug:

ssh -v username@hostname

Untuk meningkatkan tingkat verbositas, gunakan -vv atau -vvv.

Perintah ssh menerima sejumlah opsi. Untuk daftar lengkap semua opsi, baca halaman manual ssh dengan mengetikkan man ssh di terminal Anda.

File Konfigurasi SSH

Jika Anda terhubung ke beberapa sistem jarak jauh melalui SSH setiap hari, pasti akan merepotkan jika harus mengingat semua alamat IP jarak jauh, nama pengguna yang berbeda, port non-standar, dan berbagai opsi baris perintah sulit,dan lain sebagainya.

OpenSSH client membaca opsi yang diatur dalam file konfigurasi per-pengguna (~/.ssh/config). Dalam file ini, Anda dapat menyimpan opsi SSH yang berbeda untuk setiap mesin jarak jauh yang Anda sambungkan.

Contoh konfigurasi SSH ditunjukkan di bawah ini:

Host dev
    HostName dev.linuxid.net
    User rudi
    Port 41422

Ketika Anda memanggil klien ssh dengan mengetikkan ssh dev, perintah akan membaca file ~/.ssh/config dan menggunakan detail koneksi yang ditentukan untuk host dev. Dalam contoh ini, mengetik perintah ssh dev setara dengan yang berikut:

ssh -p 41422 [email protected]

Untuk informasi lebih lanjut, periksa artikel kami tentang file konfigurasi SSH.

Otentikasi Public Key

Protokol SSH mendukung berbagai mekanisme otentikasi.

Mekanisme otentikasi berbasis public key memungkinkan Anda untuk masuk ke server jarak jauh tanpa harus mengetikkan kata sandi Anda.

Metode ini bekerja dengan menghasilkan sepasang kunci kriptografi yang digunakan untuk otentikasi. Kunci pribadi (private key) disimpan pada perangkat klien, dan kunci publik (public key) ditransfer ke setiap server jarak jauh yang ingin Anda masuki. Server jarak jauh harus dikonfigurasi untuk menerima otentikasi berbasis key.

Jika Anda belum memiliki SSH key pair di mesin lokal Anda, Anda dapat membuatnya dengan mengetik:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Anda akan diminta mengetikkan kata sandi yang aman. Apakah Anda ingin menggunakan frasa sandi, itu terserah Anda.

Setelah Anda memiliki pasangan kunci Anda, salin kunci publik ke server jarak jauh:

ssh-copy-id username@hostname

Masukkan kata sandi pengguna jarak jauh, dan kunci publik akan ditambahkan ke file authorized_keys pengguna jarak jauh.

Setelah kunci diunggah, Anda dapat masuk ke server jarak jauh tanpa diminta kata sandi.

Dengan menetapkan otentikasi berbasis key, Anda dapat menyederhanakan proses login dan meningkatkan keamanan server secara keseluruhan.

Port Forwarding

SSH tunneling atau port forwarding adalah metode untuk membuat koneksi SSH terenkripsi antara klien dan mesin server melalui mana port layanan dapat di-relay.

SSH forwarding berguna untuk mengangkut data jaringan layanan yang menggunakan protokol yang tidak terenkripsi, seperti VNC atau FTP, mengakses konten yang dibatasi secara geografis atau mem-bypass firewall. Pada dasarnya, Anda dapat meneruskan port TCP apa pun dan menyalurkan lalu lintas melalui koneksi SSH yang aman.

Ada tiga jenis SSH port forwarding:

Local port forwarding

Local port forwarding memungkinkan Anda untuk meneruskan koneksi dari host klien ke host SSH server dan kemudian ke port host tujuan.

Untuk membuat Local port forwarding berikan opsi -L ke klien ssh:

ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION_HOST:DESTINATION_PORT -N -f username@hostname

Opsi -f memberitahu perintah ssh untuk dijalankan di latar belakang dan -N tidak untuk mengeksekusi perintah jarak jauh.

Remote port forwarding

Remote port forwarding adalah kebalikan dari local port forwarding. Ini meneruskan port dari host server ke host klien dan kemudian ke port host tujuan.

Opsi -L memberi tahu ssh untuk membuat remote port forwarding:

ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT -N -f username@hostname

Dynamic port forwarding

Dynamic port forwarding membuat SOCKS proxy server yang memungkinkan komunikasi melintasi berbagai port.

Untuk membuat Dynamic port forwarding (SOCKS) berikan opsi -D ke ssh client:

ssh -D [LOCAL_IP:]LOCAL_PORT  -N -f username@hostname

Untuk informasi lebih rinci dan instruksi langkah demi langkah, lihat artikel tentang Cara Mengatur SSH Tunneling (Port Forwarding).

Kesimpulan

Untuk terhubung ke server jarak jauh melalui SSH gunakan perintah ssh diikuti oleh nama pengguna dan hostname jarak jauh (ssh username@hostname).

Mengetahui cara menggunakan perintah ssh sangat penting untuk mengelola server jarak jauh.