app logoSearch

Explorer

  • Home Page
Ctrl+Btoggle sidebar
  1. Home
  2. 02 reference notes
  3. topics
  4. ssh

SSH

Pendahuluan

Pengertian

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 scp atau sftp)
  • 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 key

Menambahkan SSH Key ke Server

Jika kita sudah punya akses (misalnya via password sementara):

$ ssh-copy-id user@server_ip

Atau secara manual:

Salin output-nya → lalu login ke server (pakai password dulu), dan tambahkan ke file:

~/.ssh/authorized_keys

Pastikan izin file benar:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Menggunakan 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

Pengertian

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-agent bertindak sebagai “penjaga kunci” (key manager) yang otomatis menyediakan key kita ke ssh, git, scp, dsb.

Ilustrasi Sederhana

Tanpa ssh-agent:

$ ssh user@server
$ # lalu diminta passphrase setiap kali

Dengan ssh-agent:

$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/id_rsa
$ ssh user@server
$ # tidak diminta passphrase lagi

Jadi 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 1234

Artinya agent sudah aktif. ssh-agent biasanya digunakan untuk authentikasi git repository

Tambahkan private key
$ ssh-add ~/.ssh/id_rsa

Kalau key kita punya passphrase, kita akan diminta sekali. Setelah itu agent akan menyimpannya di memori.

Kita bisa cek daftar key yang aktif:

$ ssh-add -l

Menghapus key dari agent

$ ssh-add -d ~/.ssh/id_rsa

Tips 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@server maka akan diminta
  • Jika tidak mau menggunakan bash bisa juga menggunakan systemd contohnya 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"
Dependencies

SSH_ASKPASS butuh dependensi x11-ssh-askpass, kalau di [[Post Install Arch Linux|Arch Linux]] sudo pacman -S x11-ssh-askpass

Graph Not Found

Table of Content

  • Pendahuluan
    • Konsep Dasar SSH
  • Pembahasan
    • Cara Membuat SSH Key
    • Menambahkan SSH Key ke Server
    • Menggunakan SSH untuk Login ke Server
      • ssh-agent
      • Ilustrasi Sederhana
      • Cara Menggunakan ssh-agent
      • Tips Tambahan
Ctrl+Vtoggle sidebar