Setup dan Manajemen SSH Key
Panduan membuat SSH Key, jenis-jenis SSH Key, dan cara memasang public key ke server.
SSH Key Overview
SSH Key digunakan untuk autentikasi ke server tanpa menggunakan password.
SSH Key terdiri dari:
- Private Key : Disimpan lokal, jangan dibagikan.
- Public Key : Dikirim ke server untuk autentikasi.
Generate SSH Key
Generate SSH Key menggunakan command ssh-keygen.
Default SSH Key (ED25519)
ED25519 adalah tipe key modern yang direkomendasikan.
ssh-keygen -t ed25519
Keterangan:
-t ed25519⇒ menggunakan algoritma ED25519.- Default file:
- Private Key :
~/.ssh/id_ed25519 - Public Key :
~/.ssh/id_ed25519.pub
RSA SSH Key
RSA digunakan untuk kompatibilitas dengan sistem lama.
ssh-keygen -t rsa -b 4096
Keterangan:
-t rsa⇒ menggunakan algoritma RSA.-b 4096⇒ ukuran key 4096 bit.
ECDSA SSH Key
ECDSA adalah algoritma berbasis elliptic curve.
ssh-keygen -t ecdsa -b 521
Keterangan:
-t ecdsa⇒ menggunakan ECDSA.-b 521⇒ ukuran curve.
Generate SSH Key Dengan Nama File Custom
Gunakan nama file berbeda jika memiliki banyak SSH Key.
ssh-keygen -t ed25519 -f ~/.ssh/server-prod
Hasil:
~/.ssh/server-prod ~/.ssh/server-prod.pub
Generate SSH Key Dengan Comment
Menambahkan identitas pada public key.
ssh-keygen -t ed25519 -C "ilyasa@hostname"
Contoh hasil:
ssh-ed25519 AAAAC3... ilyasa@hostname
Melihat SSH Public Key
Public key dapat dilihat menggunakan command:
cat ~/.ssh/id_ed25519.pub
atau:
cat ~/.ssh/id_rsa.pub
Copy SSH Public Key Ke Server
Menggunakan ssh-copy-id
Cara paling mudah untuk memasang public key ke server.
ssh-copy-id ilyasa@server-ip
Contoh:
ssh-copy-id ilyasa@192.168.1.10
Keterangan:
- Public key akan ditambahkan ke:
~/.ssh/authorized_keys
Copy SSH Key Dengan Port Custom
Jika SSH menggunakan port selain 22.
ssh-copy-id -p 2222 ilyasa@server-ip
Manual Copy SSH Public Key
Jika ssh-copy-id tidak tersedia.
Di client:
cat ~/.ssh/id_ed25519.pub
Copy hasil output.
Di server:
mkdir -p /home/ilyasa/.ssh
Buat folder SSH.
nano /home/ilyasa/.ssh/authorized_keys
Paste public key.
Set permission:
chmod 700 /home/ilyasa/.ssh chmod 600 /home/ilyasa/.ssh/authorized_keys
Login Menggunakan SSH Key
Gunakan private key:
ssh ilyasa@server-ip
Dengan file key custom:
ssh -i ~/.ssh/server-prod ilyasa@server-ip
SSH Agent
SSH Agent menyimpan private key di memory agar tidak perlu memasukkan passphrase berulang.
Start SSH Agent:
eval "$(ssh-agent -s)"
Tambah SSH Key:
ssh-add ~/.ssh/id_ed25519
Melihat key yang aktif:
ssh-add -l
SSH Config File
Membuat shortcut koneksi SSH.
Edit file:
nano ~/.ssh/config
Contoh:
Host server-prod
HostName 192.168.1.10
User ilyasa
IdentityFile ~/.ssh/server-prod
Login:
ssh server-prod
Backup SSH Key
Backup folder SSH:
cp -r ~/.ssh ~/ssh-backup
File penting:
~/.ssh/id_ed25519 ~/.ssh/id_ed25519.pub ~/.ssh/config
Permission SSH Key
Private key harus memiliki permission aman.
chmod 600 ~/.ssh/id_ed25519
Folder SSH:
chmod 700 ~/.ssh
Troubleshooting
Cek koneksi SSH dengan mode debug:
ssh -v ilyasa@server-ip
Debug lebih detail:
ssh -vvv ilyasa@server-ip
Cek authorized key server:
cat /home/ilyasa/.ssh/authorized_keys
Rekomendasi
Gunakan:
- ED25519 ⇒ pilihan utama untuk server modern.
- RSA 4096 ⇒ untuk kompatibilitas sistem lama.
- Jangan pernah membagikan private key.
- Simpan backup private key di tempat aman.