system:linux:ssh:main

This is an old revision of the document!


SSH (Secure Shell)

SSH (Secure Shell) adalah protokol jaringan yang digunakan untuk komunikasi aman antar komputer. Semua data yang dikirim melalui SSH dienkripsi sehingga terlindungi dari penyadapan maupun serangan. SSH banyak dipakai untuk:

  • Mengelola server jarak jauh
  • Transfer file dengan aman
  • Membuat koneksi terenkripsi di jaringan publik
sudo apt update
sudo apt install openssh-server

Mengecek status service

systemctl status ssh

Output normalnya akan menunjukkan service active (running).

Lokasi file konfigurasi utama

/etc/ssh/sshd_config
/etc/ssh/sshd_config.d/

Koneksi ke server

# Default port (22)
ssh user@192.168.1.5
 
# Dengan port tertentu
ssh user@192.168.1.5 -p 6222

Menjalankan perintah langsung

# Menjalankan perintah di server
ssh user@192.168.1.5 'ls -l'
 
# Menjalankan script lokal di server
ssh user@192.168.1.5 bash < script.sh
 
# Kompres dan unduh file/folder dari server
ssh user@192.168.1.5 "tar czf - ~/source" > output.tgz

# Copy dari remote ke local
scp user@server:/dir/file.ext ./dest/
 
# Copy dari local ke remote
scp ./file.ext user@server:/dir/
 
# Copy folder (rekursif)
scp -r user@server:/dir ./dest/
 
# Copy antar remote server
scp user@server1:/file user@server2:/dir
 
# Copy semua isi folder
scp user@server:/dir/* ./

SSH Key memudahkan login tanpa password dengan sistem public/private key.

Membuat SSH Key

# RSA 4096 bit
ssh-keygen -t rsa -b 4096 -C "[email protected]"
 
# Ed25519 (lebih modern & ringan)
ssh-keygen -t ed25519 -C "comment's key"
 
# Interaktif default
ssh-keygen
 
# Tentukan nama file key
ssh-keygen -f ~/.ssh/custom_key

Operasi tambahan

# Buat public key dari private key
ssh-keygen -y -f private.key > public.pub
 
# Ubah komentar key
ssh-keygen -c -f ~/.ssh/id_rsa
 
# Ubah passphrase private key
ssh-keygen -p -f ~/.ssh/id_rsa

Menyalin key ke server

ssh-copy-id user@server
 
# Menyalin key tertentu
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
  • rsa
  • ed25519
  • dsa (lama, jarang dipakai)
  • ecdsa
  • PEM
  • PKCS8

Path Deskripsi
/etc/ssh/ssh_config Konfigurasi global (client)
~/.ssh/config Konfigurasi user (client)
~/.ssh/id_{type} Private key
~/.ssh/id_{type}.pub Public key
~/.ssh/known_hosts Daftar host yang dikenal
~/.ssh/authorized_keys Public key yang diizinkan

# Opsi global yang berlaku untuk semua host

# Mengaktifkan SSH agent forwarding untuk semua koneksi
ForwardAgent yes

# Mengirim paket keepalive setiap 60 detik untuk semua koneksi
ServerAliveInterval 60

# Mengaktifkan kompresi untuk semua koneksi
Compression yes

# Konfigurasi khusus host contoh.com
Host example.com
    HostName example.com             # Alamat host atau IP dari server
    User username                   # Username yang digunakan untuk koneksi
    Port 22                         # Port yang digunakan untuk koneksi (default adalah 22)
    IdentityFile ~/.ssh/id_rsa      # Lokasi file kunci privat
    # ProxyJump jump.example.com    # Menggunakan jump host (SSH bastion) untuk host ini

# Contoh mendefinisikan grup host (di-komentari)
# HostGroup web-servers
#    Hostname 192.168.1.1
#    User webuser
#    IdentityFile ~/.ssh/webserver_key

# Alias spesifik host (di-komentari)
# Host db
#    Hostname db.internal.example.com
#    User dbadmin
#    IdentityFile ~/.ssh/db_key

# Opsi lanjutan untuk host tertentu
# Host github.com
#    User git                        # Username alternatif untuk host ini
#    PreferredAuthentications publickey  # Metode otentikasi yang diutamakan
#    CheckHostIP no                  # Tidak memeriksa alamat IP host remote
#    StrictHostKeyChecking accept-new  # Menerima kunci host SSH baru secara otomatis
#    UserKnownHostsFile ~/.ssh/known_hosts_github  # Menggunakan file known_hosts terpisah

# Contoh menggunakan wildcard untuk multiple hosts (di-komentari)
# Host *.example.net
#    User admin
#    Port 2222

# Akhir dari file konfigurasi SSH client

Menggunakan alias

ssh server1
  • system/linux/ssh/main.1769434724.txt.gz
  • Last modified: 2026/02/01 21:08
  • (external edit)