SSH (Secure Shell) adalah protokol jaringan yang digunakan untuk komunikasi aman antar komputer. Semua data yang dikirim melalui SSH dienkripsi sehingga terlindungi dari penyadapan maupun serangan. SSH banyak dipakai untuk:
sudo apt update sudo apt install openssh-server
systemctl status ssh
Output normalnya akan menunjukkan service active (running).
/etc/ssh/sshd_config /etc/ssh/sshd_config.d/
# Default port (22) ssh user@192.168.1.5 # Dengan port tertentu ssh user@192.168.1.5 -p 6222
# Menjalankan perintah di server ssh user@192.168.1.5 'ls -l' # Menjalankan script lokal di server ssh user@192.168.1.5 bash < script.sh # Kompres dan unduh file/folder dari server ssh user@192.168.1.5 "tar czf - ~/source" > output.tgz
# Copy dari remote ke local scp user@server:/dir/file.ext ./dest/ # Copy dari local ke remote scp ./file.ext user@server:/dir/ # Copy folder (rekursif) scp -r user@server:/dir ./dest/ # Copy antar remote server scp user@server1:/file user@server2:/dir # Copy semua isi folder scp user@server:/dir/* ./
SSH Key memudahkan login tanpa password dengan sistem public/private key.
# RSA 4096 bit ssh-keygen -t rsa -b 4096 -C "[email protected]" # Ed25519 (lebih modern & ringan) ssh-keygen -t ed25519 -C "comment's key" # Interaktif default ssh-keygen # Tentukan nama file key ssh-keygen -f ~/.ssh/custom_key
# Buat public key dari private key ssh-keygen -y -f private.key > public.pub # Ubah komentar key ssh-keygen -c -f ~/.ssh/id_rsa # Ubah passphrase private key ssh-keygen -p -f ~/.ssh/id_rsa
ssh-copy-id user@server # Menyalin key tertentu ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
| Path | Deskripsi |
|---|---|
| /etc/ssh/ssh_config | Konfigurasi global (client) |
| ~/.ssh/config | Konfigurasi user (client) |
| ~/.ssh/id_{type} | Private key |
| ~/.ssh/id_{type}.pub | Public key |
| ~/.ssh/known_hosts | Daftar host yang dikenal |
| ~/.ssh/authorized_keys | Public key yang diizinkan |
# Opsi global
ForwardAgent yes
ServerAliveInterval 60
Compression yes
# Host tertentu
Host example.com
HostName example.com
User username
Port 22
IdentityFile ~/.ssh/id_rsa
# ProxyJump jump.example.com # Gunakan bastion/jump host
# Alias untuk koneksi cepat
Host server1
HostName 192.168.1.10
User admin
Port 2222
IdentityFile ~/.ssh/id_ed25519
ssh server1