{{indexmenu_n>0010}}
====== 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.