SSH dan Remote Server Management
Mengelola server dari jarak jauh dengan SSH, autentikasi kunci, konfigurasi client/server, transfer file, dan tunneling.
SSH (Secure Shell) adalah cara standar mengakses server Linux dari jarak jauh. Modul ini membahas autentikasi, konfigurasi, transfer file, dan tunneling yang aman.
Cara kerja SSH
SSH membuat koneksi terenkripsi ke port 22 (default). Server menjalankan sshd, client memakai
ssh.
ssh deploy@192.168.1.60
ssh deploy@web.lab.local
ssh -p 2222 deploy@103.47.132.10Saat pertama kali terhubung, SSH menampilkan fingerprint host. Periksa dan terima jika sesuai.
Autentikasi kunci (disarankan)
Password rentan brute force. Kunci SSH jauh lebih aman.
Membuat pasangan kunci
ssh-keygen -t ed25519 -C "deploy@laptop"File yang dihasilkan:
| File | Fungsi |
|---|---|
~/.ssh/id_ed25519 | Private key — jangan dibagikan |
~/.ssh/id_ed25519.pub | Public key — dipasang di server |
Memasang public key
ssh-copy-id deploy@192.168.1.60Atau manual:
cat ~/.ssh/id_ed25519.pub | ssh deploy@192.168.1.60 \
'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys'Permission file
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pubPrivate key adalah identitas Anda
Jangan pernah mengunggah private key ke Git, chat, atau server lain. Gunakan passphrase dan
ssh-agent untuk perlindungan tambahan.
Konfigurasi client: ~/.ssh/config
Menyimpan konfigurasi membuat perintah lebih singkat.
nano ~/.ssh/configHost proxmox
HostName 192.168.1.50
User root
Port 22
IdentityFile ~/.ssh/id_ed25519
Host web
HostName 10.10.10.11
User deploy
ProxyJump proxmoxGunakan:
ssh webProxyJump memungkinkan koneksi ke host internal melalui host perantara.
Konfigurasi server: sshd_config
File utama: /etc/ssh/sshd_config (atau file di /etc/ssh/sshd_config.d/).
sudo nano /etc/ssh/sshd_configKonfigurasi dasar yang aman:
Port 22
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers deploy
MaxAuthTries 3
X11Forwarding noSetelah mengubah:
sudo sshd -t
sudo systemctl reload sshJangan kunci diri sendiri
Sebelum menonaktifkan login password, pastikan autentikasi kunci sudah berhasil. Buka sesi SSH kedua sebagai cadangan sebelum reload.
Transfer file
scp
scp file.txt deploy@192.168.1.60:/srv/app/
scp -r ./dist deploy@192.168.1.60:/srv/app/
scp deploy@192.168.1.60:/var/log/nginx/error.log ./rsync
rsync lebih efisien untuk sinkronisasi karena hanya mengirim perubahan.
rsync -avz ./dist/ deploy@192.168.1.60:/srv/app/dist/
rsync -avz --delete ./public/ deploy@192.168.1.60:/srv/app/public/| Opsi | Fungsi |
|---|---|
-a | Arsip: permission, waktu, symlink |
-v | Verbose |
-z | Kompresi |
--delete | Hapus file di tujuan yang tidak ada di sumber |
Port forwarding dan tunneling
Local forwarding
Meneruskan port lokal ke layanan di server:
ssh -L 8080:localhost:80 deploy@192.168.1.60Buka http://localhost:8080 di laptop untuk mengakses web server di server.
Akses Proxmox UI lewat tunnel
ssh -L 8006:localhost:8006 root@192.168.1.50Lalu buka https://localhost:8006.
Remote forwarding
Meneruskan port server ke layanan di laptop (jarang dipakai, gunakan dengan hati-hati):
ssh -R 9000:localhost:3000 deploy@192.168.1.60SSH agent
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
ssh-add -lAgen menyimpan kunci yang sudah dibuka sehingga Anda tidak mengetik passphrase berulang.
Troubleshooting SSH
| Gejala | Cek |
|---|---|
Connection refused | sshd berjalan? systemctl status ssh |
Permission denied (publickey) | Permission .ssh, isi authorized_keys |
| Timeout | Firewall/routing, port, Tailscale |
| Terlalu banyak percobaan | Fail2ban atau MaxAuthTries |
| Host key berubah | Verifikasi, lalu hapus entri lama di known_hosts |
Debug dari client:
ssh -vvv deploy@192.168.1.60Debug server:
journalctl -u ssh -n 50Ringkasan
- SSH mengenkripsi akses remote dan menjadi pintu utama administrasi server.
- Gunakan autentikasi kunci, bukan password.
~/.ssh/configmerapikan koneksi;ProxyJumpmenembus host perantara.scp/rsyncuntuk transfer,-L/-Runtuk tunneling.
Selanjutnya
Pelajari kapasitas server di Server Architecture: CPU, RAM, Storage, dan Resource Management.
Network Troubleshooting dan Networking Tools
Metode sistematis mendiagnosis masalah jaringan dengan ping, traceroute, dig, curl, ss, tcpdump, dan alat pendukung lainnya.
Server Architecture: CPU, RAM, Storage, dan Resource Management
Memahami peran CPU, RAM, dan storage, membaca metrik beban, serta mengalokasikan resource VM/LXC secara sehat.