SSH
Pendahuluan
SSH (Secure Shell) adalah protokol jaringan yang digunakan untuk mengakses dan mengelola server secara aman melalui koneksi terenkripsi.
Biasanya SSH digunakan oleh developer atau sysadmin untuk:
- Masuk ke server remote (misalnya VPS, hosting, Raspberry Pi, dll)
- Menjalankan perintah di server
- Transfer file secara aman (pakai
scpatausftp) - Melakukan tunneling (misalnya port forwarding)
Konsep Dasar SSH
SSH menggunakan pasangan kunci (key pair):
- Private key
id_rsa→ disimpan di komputer kita, jangan pernah dibagikan. - Public key
id_rsa.pub→ disalin ke server (biasanya ke file~/.ssh/authorized_keys).
Ketika kita mencoba login, server akan memverifikasi bahwa kita memiliki private key yang cocok dengan public key yang tersimpan di sana. Jadi kita bisa login tanpa password, dan lebih aman.
Pembahasan
Cara Membuat SSH Key
Untuk Linux / macOS / WSL, Buka terminal dan jalankan:
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"Penjelasan:
-t rsa→ jenis algoritma (RSA)-b 4096→ panjang kunci (semakin besar semakin aman)-C→ komentar (biasanya email kita)
Lalu:
- Tekan Enter untuk lokasi default (
~/.ssh/id_rsa) - Bisa beri passphrase (opsional) untuk keamanan tambahan
Setelah selesai, kamu akan punya dua file:
~/.ssh/id_rsa # private key
~/.ssh/id_rsa.pub # public keyMenambahkan SSH Key ke Server
Jika kita sudah punya akses (misalnya via password sementara):
$ ssh-copy-id user@server_ipAtau secara manual:
Salin output-nya → lalu login ke server (pakai password dulu), dan tambahkan ke file:
~/.ssh/authorized_keysPastikan izin file benar:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keysMenggunakan SSH untuk Login ke Server
Untuk menggunakan SSH key yang sudah dibuat kita perlu kita perlu menyimpan private key nya di memori (session) dengan menggunakan ssh-agent. Tapi ssh-agent tidak berjalan otomatis pada sistem operasi Linux kita perlu meng-konfigurasinya telebih dahulu
ssh-agent
ssh-agent adalah program yang menyimpan private key SSH di memori sementara, sehingga kamu tidak perlu memasukkan passphrase setiap kali menggunakan SSH key.
Dengan kata lain:
ssh-agentbertindak sebagai “penjaga kunci” (key manager) yang otomatis menyediakan key kita kessh,git,scp, dsb.
Ilustrasi Sederhana
Tanpa ssh-agent:
$ ssh user@server
$ # lalu diminta passphrase setiap kaliDengan ssh-agent:
$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/id_rsa
$ ssh user@server
$ # tidak diminta passphrase lagiJadi ssh-agent menyimpan key kita di RAM (bukan di disk), dan otomatis digunakan sampai kita logout / reboot.
Cara Menggunakan ssh-agent
Jalankan agent
$ eval "$(ssh-agent -s)"
$ # Output-nya kira-kira: Agent pid 1234Artinya agent sudah aktif. ssh-agent biasanya digunakan untuk authentikasi git repository
Tambahkan private key
$ ssh-add ~/.ssh/id_rsaKalau key kita punya passphrase, kita akan diminta sekali. Setelah itu agent akan menyimpannya di memori.
Kita bisa cek daftar key yang aktif:
$ ssh-add -lMenghapus key dari agent
$ ssh-add -d ~/.ssh/id_rsaTips Tambahan
ssh-agent otomatis aktif
source:: https://stackoverflow.com/a/38619604
tambahkan baris ini pada ~/.bashrc
if [ ! -S ~/.ssh/ssh_auth_sock ]; then
eval `ssh-agent`
ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock
fi
export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock- Tutup semua shell (terminal) yang terbuka dan buka kembali
- Jika kita kita menjalankan perintah
ssh user@servermaka akan diminta - Jika tidak mau menggunakan bash bisa juga menggunakan
systemdcontohnya seperti ini: Autostart ssh agent di Hyprland Window Manager
Auto Ask Passphrase
Jika key butuh passphrase tapi aplikasi kita bukan di terminal untuk memunculkan popup input password di [[Post Install Linux Mint XFCE Wilma|XFCE Desktop Environtment]] maka harus menambahkan configurasi berikut di ~/.bash_profile
export $(gnome-keyring-daemon --daemonize --start)Untuk di Window Manager seperti [[Hyprland Window Manager]] tambakan konfigurasi berikut ini di ~/.bash_profile:
export SSH_ASKPASS="/usr/lib/ssh/x11-ssh-askpass"
export SSH_ASKPASS_REQUIRE="force"SSH_ASKPASS butuh dependensi x11-ssh-askpass, kalau di [[Post Install Arch Linux|Arch Linux]] sudo pacman -S x11-ssh-askpass