SSH - Secure Shell
20 Juni 2025
SSH (Secure Shell) adalah protokol jaringan yang aman untuk:
Mengakses komputer/server lain dari jarak jauh
Menjalankan perintah di server secara remote
Mengelola file dan aplikasi
Menyalin file antar mesin (misalnya via SCP atau SFTP)

Cara Kerja SSH
⎯⎯⎯⎯⎯⎯⎯⎯
SSH menggunakan enkripsi dan autentikasi untuk mengamankan koneksi antara
Client (komputer kita) & Server (mesin yang kita remote)

Dua metode autentikasi:
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
1.Password (login pakai username & password)
2.Public Key (lebih aman, pakai sepasang key: public & private)

SSH Client

🔑 SSH Key (Autentikasi Tanpa Password)
SSH key itu pasangan public & private
Private key: disimpan di komputer kita
Public key: ditaruh di server


	analogi mudah nya adalah seperti kunci dan gembok.
gembok boleh di taruh dimana aja. misal di sepeda, pintu dll
tapi kunci hanya boleh di pegang kita saja.


Langkah umum:
	
	# Generate key di linux
	ssh-keygen -t ed25519 -C "email@domain.com"

	# untuk windows bs menggungkan puttygen

	# Upload key ke server
	ssh-copy-id user@server_ip

	# atau secara manual masukan key ke file ~/.ssh/authorized_keys
	cat ~/.ssh/id_ed25519.pub | ssh user@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

	# Setelah itu, kita bisa login tanpa password
	ssh user@server_ip

	# Menyalin File dgn scp (Secure Copy)
	scp file.txt user@192.168.1.100:/home/user/

	# Mengelola File dengan SFTP (SSH File Transfer Protocol)
	sftp user@192.168.1.100

	


🔑 Jenis-Jenis SSH Key & Perbedaannya
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
1. RSA (Rivest-Shamir-Adleman)
Umum digunakan dan paling kompatibel.
Ukuran kunci: biasanya 2048 atau 4096 bit.
Kuat dan aman jika ukuran kunci cukup besar.
Format umum: id_rsa / id_rsa.pub
🔧 Kapan dipakai: default paling aman dan kompatibel hampir di semua server.

2. DSA (Digital Signature Algorithm)
Dulu digunakan, tapi sekarang tidak direkomendasikan.
Ukuran kunci tetap: 1024 bit (tidak bisa lebih).
Kurang aman menurut standar modern.
⚠️ Catatan: Sudah deprecated di OpenSSH, jangan pakai.

3. ECDSA (Elliptic Curve Digital Signature Algorithm)
Lebih modern dan cepat dibanding RSA.
Ukuran kunci lebih kecil: 256, 384, atau 521 bit, tapi tetap sangat aman.
Dibuat untuk perangkat low-resource atau IoT.
🔧 Kapan dipakai: Saat butuh efisiensi dan kecepatan, misalnya pada embedded systems.

4. EdDSA (Ed25519)
Paling modern dan aman (dibuat setelah ECDSA).
Cepat, kecil, dan tidak butuh banyak entropi saat membuat kunci.
Fixed size: 256 bit.
Format umum: id_ed25519 / id_ed25519.pub
✅ Rekomendasi utama saat ini kalau sistem mendukung. Aman dan cepat.

5. SSH-1 (RSA)
Versi lama dari protokol SSH.
Sudah deprecated dan tidak aman.
Jangan digunakan.
⚠️ Catatan: Gunakan hanya SSH-2, bukan SSH-1.

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Algoritma 		| Aman? | Cepat? | Disarankan?  | Kompatibilitas
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
RSA (2048/4096) | ✅ 	| Cukup	 | ✅ 			| Sangat luas
Ed25519  		| ✅✅	| ✅✅	 | ✅✅		    | Modern (OpenSSH ≥ 6.5)
ECDSA			| ✅ 	| ✅✅	 | ⚠️ (IoT) 	| Modern
DSA			 	| ❌ 	| ✅ 	 | ❌ 			| Deprecated
SSH-1			| ❌ 	| ❌ 	 | ❌ 			| Deprecated

Penting: Jaga Private Key-mu!
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Jangan pernah kirim ke orang lain
Jangan upload ke GitHub atau cloud storage
Gunakan passphrase untuk proteksi ekstra
Simpan di ~/.ssh/id_ed25519 (atau id_rsa)


SSH Server

SSH Server adalah layanan yang berjalan di mesin/server dan memungkinkan kita untuk masuk dari jarak jauh menggunakan SSH Client.

Client = komputer kita (yang remote)
Server = mesin tujuan (yang di-remote)

# install di ubuntu server
sudo apt update
sudo apt install openssh-server

# start service ssh
sudo systemctl start sshd
sudo systemctl enable sshd

# Cek apakah SSH sudah aktif
sudo systemctl status ssh

# cek config ssh
vim /etc/ssh/sshd_config

Port 22                    # Ganti port kalau perlu
PermitRootLogin no         # Nonaktifkan login root (lebih aman)
PasswordAuthentication no  # Gunakan SSH Key saja

# restart service ssh
sudo systemctl restart ssh

# cek koneksi ssh dari komputer client ke server
ssh -p 2222 user@server_ip

# atau jika menggunakan private key
ssh -i ~/.ssh/id_ed25519 user@server_ip


File Penting
⎯⎯⎯⎯⎯⎯⎯
/etc/ssh/sshd_config		#Konfigurasi SSH server
~/.ssh/authorized_keys #Daftar public key yang boleh login
/var/log/auth.log #Log login (Ubuntu/Debian)
~/.ssh/known_hosts #Client-side: cache server keys


Tips Keamanan SSH
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
✅ Ganti port default (22)
✅ Gunakan SSH key, bukan password
✅ Matikan login root (gunakan user biasa + sudo)
✅ Gunakan firewall untuk batasi IP
✅ Gunakan fail2ban untuk cegah brute force
Related Artikel

..
..