{{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.