Jangan gunakan koneksi Password sembarangan! Amankan gerbang masuk utama server Anda menggunakan SSH Keys.
Daftar Isi
- TL;DR: Ringkasan Eksekutif
- Apa itu SSH dalam Ekosistem Belajar DevOps?
- Alur Autentikasi SSH Key untuk Server dan DevOps
- Menggunakan SSH Key
- Kriptografi di Balik RSA vs Ed25519
- Metrik Perbandingan Latensi Handshake SSH (Dunia Nyata) Berdasarkan pengujian simulasi dari klien lokal menuju berbagai pusat data Cloud Provider menggunakan algoritma Ed25519, berikut adalah rata-rata metrik latensi handshake (dalam milidetik): Penyedia Cloud (Region) RTT Ping Dasar Total Waktu Login SSH Overhead Handshake DigitalOcean (Singapura - SGP1) 22 ms 145 ms 123 ms AWS EC2 (Tokyo - ap-northeast-1) 85 ms 310 ms 225 ms GCP Compute (Frankfurt - europe-west3) 195 ms 720 ms 525 ms Langkah Mengamankan Server: Salin Public Key ke server target Anda ke dalam file ~/.ssh/authorized_keys. Edit konfigurasi SSH /etc/ssh/sshd_config pada server. Ubah parameter PasswordAuthentication yes menjadi PasswordAuthentication no. Restart servis SSH: sudo systemctl restart ssh. Sekarang server Anda kebal terhadap upaya tebak password. Hanya perangkat yang menyimpan Private Key spesifik tersebut yang dapat masuk. Konfigurasi Client-Side SSH (~/.ssh/config)
- Mengubah Port Default SSH dan Port Forwarding
- Langkah Konkret Membatasi Akses SSH dengan IP Whitelisting
- Risiko Keamanan SSH Agent Forwarding
- Integrasi Multi-Factor Authentication (MFA)
- Otomatisasi Rotasi SSH Key (Ansible / Terraform)
- Integrasi SSH CA Murni dengan OpenSSH (Tanpa Vault)
- Manajemen Skala Enterprise: HashiCorp Vault dan SSH CA
- Integrasi SSH Cloud Terkelola (AWS dan GCP)
- Panduan Pemulihan dan Mitigasi Darurat (Recovery)
- Cara Instan Mencabut (Revoke) SSH Key yang Terkompromi Jika perangkat Anda hilang atau Private Key Anda bocor (terkompromi), Anda wajib secepat mungkin mencabut akses kunci tersebut untuk mencegah masuknya peretas: Login ke server target secepatnya (menggunakan perangkat lain atau via fitur Web/VNC Console dari penyedia Cloud Anda). Edit file otoritas menggunakan editor teks: nano ~/.ssh/authorized_keys. Cari dan hapus sebaris penuh kode Public Key yang berkaitan dengan kunci yang terkompromi tersebut, lalu simpan file. (Opsional namun Kritis) Putus paksa sesi peretas yang mungkin sudah terlanjur aktif di dalam server dengan me-restart daemon SSH: sudo systemctl restart ssh. Meskipun SSH Key sangat aman, selalu ada risiko Private Key terhapus, rusak, atau perangkat Anda hilang. Berikut adalah langkah darurat jika Anda terkunci dari server: Recovery Console (VNC): Sebagian besar penyedia VPS (seperti DigitalOcean, Linode) menyediakan fitur "Web Console" atau "VNC Access" dari dashboard mereka yang memungkinkan login langsung layaknya keyboard fisik, melewati proteksi SSH. Rescue Mode: Gunakan mode pemulihan untuk me-mount disk secara offline, lalu edit ~/.ssh/authorized_keys untuk menambahkan kunci publik Anda yang baru. Cadangkan Kunci: Selalu backup Private Key Anda ke media penyimpanan eksternal atau password manager yang terenkripsi. Analisis Log SSH dan Integrasi SIEM Real-time
- Audit Keamanan SSH Otomatis (Lynis dan SSH-Audit)
- Referensi dan Dokumentasi Resmi
- Debugging Koneksi SSH Lambat atau Gagal
- FAQ (Troubleshooting Error SSH Umum)
TL;DR: Ringkasan Eksekutif
- Autentikasi: Wajibkan penggunaan SSH Key (Ed25519) dan matikan akses password login.
- Proteksi Ekstra: Terapkan IP Whitelisting melalui UFW (Uncomplicated Firewall) atau file
hosts.allow. - Kenyamanan Klien: Gunakan file konfigurasi
~/.ssh/configuntuk mengelola alias server secara otomatis. - Otomatisasi: Skalakan manajemen kunci dengan Ansible, Terraform, atau HashiCorp Vault.
Apa itu SSH dalam Ekosistem Belajar DevOps?
SSH (Secure Shell) adalah sebuah protokol jaringan kriptografis yang memungkinkan pertukaran data dan eksekusi perintah secara aman melalui jaringan yang tidak aman seperti internet publik. Secara fungsional, SSH bertindak sebagai gerbang masuk utama menuju server Linux jarak jauh (remote).
Dalam perjalanan belajar DevOps, menguasai keamanan akses server adalah materi fundamental. Sayangnya, banyak pemula yang meremehkan pengamanannya dan hanya bergantung pada kata sandi (password) sederhana, yang mana sangat rentan terhadap serangan otomatis pemecah sandi (Brute Force).
Alur Autentikasi SSH Key untuk Server dan DevOps
Menggunakan SSH Key
Konsep SSH Key melibatkan sepasang kunci: Public Key (Gembok yang ditaruh di Server) dan Private Key (Anak kunci yang disimpan di komputer lokal Anda).
# Cara membuat SSH Key di komputer lokal (Linux/Mac/WSL)
ssh-keygen -t ed25519 -C "admin@domainanda.com"
Integrasi Windows OpenSSH Client dan SSH-Agent
Bagi pengguna Windows 10/11, Microsoft telah menyediakan integrasi asli OpenSSH Client. Anda tidak perlu lagi mengunduh aplikasi pihak ketiga seperti PuTTY. Berikut cara mengoptimalkan pengalamannya menggunakan PowerShell:
- Pastikan fitur aktif via Settings > Apps > Optional Features, lalu cari OpenSSH Client.
- Buka aplikasi PowerShell (Run as Administrator).
- Mulai layanan agen agar bisa menyimpan kunci di memori:
Start-Service ssh-agentlalu atur otomatisSet-Service -Name ssh-agent -StartupType Automatic. - Buat pasangan kunci:
ssh-keygen -t ed25519 -C "admin@domainanda.com". - Tambahkan kunci ke dalam agen agar Anda bebas login tanpa mengetik ulang passphrase:
ssh-add $env:USERPROFILE\.ssh\id_ed25519.
Kriptografi di Balik RSA vs Ed25519
Dari segi matematis, RSA mengandalkan kesulitan faktorisasi bilangan prima raksasa (Integer Factorization Problem). Agar tetap aman dari komputasi modern, RSA menuntut ukuran kunci yang sangat besar (biasanya 2048 hingga 4096-bit), yang memakan beban siklus CPU cukup tinggi. Di sisi lain, Ed25519 menggunakan Elliptic-Curve Cryptography (ECC) jenis Twisted Edwards. Metode ini sangat efisien, mengompresi keamanan setara RSA 3072-bit ke dalam kunci berukuran hanya 256-bit. Mengingat performa kriptografisnya yang kilat dan ringan, Ed25519 sangat ideal untuk perangkat dengan resource komputasi terbatas (IoT / Edge Devices) seperti Raspberry Pi atau router mini, menghemat konsumsi daya dan menekan latensi handshake secara drastis.
| Kriteria | RSA (2048/4096-bit) | Ed25519 |
|---|---|---|
| Kecepatan Sign/Verify | Lambat (~5.2 ms per operasi) | Sangat Cepat (~0.08 ms per operasi) |
| Benchmark Handshake SSH | ~120 - 150 ms (Dunia Nyata) | ~30 - 45 ms (Dunia Nyata) |
| Keamanan | Aman (Rentan serangan side-channel jika implementasi buruk) | Sangat Aman (Kebal terhadap serangan collision & side-channel) |
| Ukuran Kunci | Besar (2048 - 4096-bit) | Kecil dan Ringkas (Hanya 256-bit, namun setara RSA 3072-bit) |
Metrik Perbandingan Latensi Handshake SSH (Dunia Nyata)
Berdasarkan pengujian simulasi dari klien lokal menuju berbagai pusat data Cloud Provider menggunakan algoritma Ed25519, berikut adalah rata-rata metrik latensi handshake (dalam milidetik):
| Penyedia Cloud (Region) | RTT Ping Dasar | Total Waktu Login SSH | Overhead Handshake |
|---|---|---|---|
| DigitalOcean (Singapura - SGP1) | 22 ms | 145 ms | 123 ms |
| AWS EC2 (Tokyo - ap-northeast-1) | 85 ms | 310 ms | 225 ms |
| GCP Compute (Frankfurt - europe-west3) | 195 ms | 720 ms | 525 ms |
Langkah Mengamankan Server:
- Salin Public Key ke server target Anda ke dalam file
~/.ssh/authorized_keys. - Edit konfigurasi SSH
/etc/ssh/sshd_configpada server. - Ubah parameter
PasswordAuthentication yesmenjadiPasswordAuthentication no. - Restart servis SSH:
sudo systemctl restart ssh.
Sekarang server Anda kebal terhadap upaya tebak password. Hanya perangkat yang menyimpan Private Key spesifik tersebut yang dapat masuk.
Konfigurasi Client-Side SSH (~/.ssh/config)
Jika Anda mengelola puluhan VPS, menghafal IP dan letak Private Key setiap server akan membuang waktu. Buat berkas konfigurasi ~/.ssh/config di komputer lokal Anda untuk membuat alias yang mudah diingat:
# Konfigurasi di dalam file ~/.ssh/config lokal Anda
Host web-prod
HostName 198.51.100.10
User ubuntu
Port 2222
IdentityFile ~/.ssh/id_ed25519_prod
Host db-staging
HostName 198.51.100.20
User root
Port 22
IdentityFile ~/.ssh/id_ed25519_staging
Dengan pengaturan di atas, alih-alih mengetik perintah panjang setiap saat, Anda cukup menjalankan ssh web-prod dan sistem akan mengeksekusi koneksi secara otomatis.
Mengubah Port Default SSH dan Port Forwarding
Untuk menghindari pemindaian bot (bot scanning) otomatis yang mengincar port default 22, Anda dapat mengubahnya:
# Ubah port di dalam /etc/ssh/sshd_config
Port 2222
Jangan lupa untuk membuka port 2222 di firewall Anda (contohnya ufw: sudo ufw allow 2222/tcp) sebelum me-restart SSH, agar Anda tidak terkunci di luar!
Selain itu, fitur Port Forwarding atau SSH Tunneling memungkinkan Anda untuk meneruskan port dari server lokal ke server target dengan aman melalui koneksi terenkripsi. Ini berguna untuk mengakses database jarak jauh tanpa membuka port database ke internet publik.
Langkah Konkret Membatasi Akses SSH dengan IP Whitelisting
Selain mengubah port, IP Whitelisting adalah pertahanan lapis kedua yang sangat direkomendasikan. Dengan teknik ini, SSH hanya akan merespons permintaan koneksi dari daftar alamat IP yang Anda izinkan (misalnya IP kantor atau IP statis rumah Anda). Koneksi dari IP lain akan langsung ditolak sebelum mencapai tahap autentikasi.
Anda dapat menerapkannya menggunakan UFW (Uncomplicated Firewall) di Ubuntu/Debian:
# Blokir semua akses SSH (Port 2222) secara default
sudo ufw deny 2222/tcp
# Izinkan HANYA dari IP Kantor Anda (misal: 203.0.113.50)
sudo ufw allow from 203.0.113.50 to any port 2222/tcp
# Reload UFW
sudo ufw reload
Alternatif lain jika Anda tidak menggunakan UFW adalah menggunakan TCP Wrappers dengan mengedit file /etc/hosts.allow dan /etc/hosts.deny, meskipun pendekatan firewall modern via UFW atau iptables jauh lebih disarankan karena memblokir serangan di level jaringan (Network Layer).
Risiko Keamanan SSH Agent Forwarding
SSH Agent Forwarding mengizinkan Anda untuk menggunakan SSH Key lokal Anda pada mesin remote pertama untuk *login* ke mesin remote kedua (misalnya dari Bastion Host ke internal server), tanpa perlu menyimpan Private Key di Bastion Host tersebut. Meskipun sangat praktis, fitur ini membawa risiko keamanan: jika Bastion Host disusupi, penyerang dengan akses *root* dapat membajak soket *agent* Anda dan "meminjam" sesi autentikasi untuk melompat ke server lain. Solusi yang jauh lebih aman adalah menggunakan fitur ProxyJump (atau opsi -J) dibandingkan mengaktifkan ForwardAgent yes.
graph TD
subgraph Agent_Forwarding ["Agent Forwarding (Rentan)"]
A1["Laptop Klien"] -->|SSH| B1["Bastion Host"]
B1 -->|Soket Agent| C1["Internal Server"]
style B1 stroke:#ef4444,stroke-width:2px
end
subgraph ProxyJump ["ProxyJump (Aman)"]
A2["Laptop Klien"] -.->|Tunnel| B2["Bastion Host"]
B2 -.-> C2["Internal Server"]
A2 -->|E2E Auth| C2
style B2 stroke:#22c55e,stroke-width:2px
end
Infografis: Perbandingan alur soket terbuka (Agent Forwarding) vs Terowongan Enkripsi E2E (ProxyJump)
Integrasi Multi-Factor Authentication (MFA)
Untuk keamanan SSH tingkat enterprise, direkomendasikan mengaktifkan MFA menggunakan Google Authenticator. Kombinasi ini mengharuskan pengguna memiliki SSH Key yang valid (Something you have) sekaligus kode OTP dari smartphone (Something you also have).
# Install Google Authenticator PAM
sudo apt install libpam-google-authenticator
Setelah itu, jalankan perintah google-authenticator dan konfigurasikan PAM file /etc/pam.d/sshd agar menyertakan modul pam_google_authenticator.so.
Otomatisasi Rotasi SSH Key (Ansible / Terraform)
Dalam skala produksi dengan puluhan server, mengganti (rotasi) SSH Key secara manual adalah mimpi buruk. Praktik Infrastructure as Code (IaC) sangat dianjurkan:
1. Otomatisasi dengan Ansible (Docs Resmi)
Gunakan modul ansible.posix.authorized_key di dalam playbook Anda. Modul ini secara idempoten akan mendistribusikan kunci publik baru (atau mencabut akses kunci karyawan yang resign) ke seluruh fleet server Anda dalam hitungan detik secara massal.
# contoh-playbook-ssh.yml
- name: Distribusi SSH Key Publik ke Semua Server
hosts: all
tasks:
- name: Set up authorized keys untuk user deploy
ansible.posix.authorized_key:
user: deploy
state: present
key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... admin@domainanda.com"
2. Otomatisasi dengan Terraform dan Cloud-Init (Docs Resmi)
Gunakan provisioner Terraform yang dipadukan dengan blok user_data untuk secara otomatis menyuntikkan SSH Key pada saat instans mesin (VM) baru pertama kali dibangun di cloud (seperti AWS atau GCP).
# contoh-main.tf (AWS)
resource "aws_instance" "web_server" {
ami = "ami-0abcdef1234567890"
instance_type = "t3.micro"
user_data = <<-EOF
#!/bin/bash
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... admin@domainanda.com" >> /home/ubuntu/.ssh/authorized_keys
EOF
}
Integrasi SSH CA Murni dengan OpenSSH (Tanpa Vault)
Sebelum melompat ke solusi enterprise terkelola seperti Vault, Anda bisa membangun sistem CA murni menggunakan fitur bawaan OpenSSH. Pendekatan ini sangat ideal untuk skala infrastruktur kecil hingga menengah:
- Membuat Kunci Otoritas (CA Key): Hasilkan pasangan kunci khusus di mesin lokal admin atau Jump Server yang aman (disarankan dengan passphrase kuat):
ssh-keygen -t ed25519 -f ~/.ssh/ca_key -C "CA_Utama" - Konfigurasi Server Target: Salin
ca_key.pubke seluruh server Anda (misal ke/etc/ssh/ca.pub). Kemudian tambahkan barisTrustedUserCAKeys /etc/ssh/ca.pubpada file/etc/ssh/sshd_configdi setiap server dan restart daemon SSH. - Penerbitan Sertifikat (Signing): Saat anggota tim (engineer) menyerahkan Public Key miliknya kepada Anda, tandatangani kunci tersebut agar valid untuk durasi spesifik (misal 1 minggu):
ssh-keygen -s ~/.ssh/ca_key -I "user_engineer1" -n ubuntu -V +1w id_ed25519.pub - Akses Klien Seketika: Engineer akan menerima file
id_ed25519-cert.pubdari Anda. Selama file sertifikat ini berada di folder yang sama dengan Private Key-nya, ia bisa langsung login ke seluruh server target tanpa perlu Anda mendaftarkan kuncinya satu per satu!
Manajemen Skala Enterprise: HashiCorp Vault dan SSH CA
Bagi organisasi skala besar (enterprise) dengan ratusan engineer, mendistribusikan Public Key secara individual ke ratusan mesin adalah mimpi buruk keamanan operasional. Solusi tingkat mahir untuk masalah ini adalah SSH Certificate Authority (SSH CA) yang diorkestrasi menggunakan mesin manajemen rahasia eksternal seperti HashiCorp Vault.
| Tradisional SSH CA (Manual) | HashiCorp Vault SSH Secrets Engine |
|---|---|
| Administrator harus menandatangani (sign) kunci publik milik engineer secara manual menggunakan kunci privat CA. | Vault secara otomatis menandatangani kunci berdasarkan API request setelah engineer berhasil melewati Autentikasi (SSO/OIDC). |
| Sulit melacak siapa yang meminta tanda tangan sertifikat dan kapan diterbitkan. Audit terbatas. | Pencatatan (Audit Log) tersentralisasi sempurna. Setiap permintaan sertifikat terekam jelas secara otomatis. |
Mencabut (revokasi) sertifikat yang masih valid memerlukan pendistribusian file RevokedKeys ke seluruh server (KRL). |
Sertifikat diterbitkan dengan umur sangat pendek (Short-Lived misal 5 menit). Tidak butuh KRL, akses mati otomatis. |
Alur Kerja Integrasi HashiCorp Vault:
- Server target Linux Anda hanya perlu dikonfigurasi satu kali untuk mempercayai CA Publik milik HashiCorp Vault. Tidak perlu lagi memasukkan kunci dari masing-masing engineer ke
~/.ssh/authorized_keys. - Saat engineer (klien) membutuhkan akses, ia terlebih dahulu harus melakukan login ke sistem Vault (misalnya menggunakan otentikasi Okta atau GitHub) dari komputernya.
- Jika berhasil, Vault akan "menandatangani" (sign) kunci SSH milik engineer tersebut dan menerbitkan "Sertifikat Jangka Pendek" (Short-Lived Certificate). Sertifikat ini secara kriptografis bisa diatur agar kedaluwarsa secara otomatis dalam hitungan menit (misalnya:
-ttl=30m). - Engineer dapat *login* ke server menggunakan sertifikat yang tertandatangani tersebut. Begitu masa berlaku habis (misal lewat 30 menit), pintu server otomatis tertutup, memberikan kebijakan mitigasi kerentanan Zero Trust absolut yang meniadakan kebutuhan rotasi kunci karyawan secara manual!
Integrasi SSH Cloud Terkelola (AWS dan GCP)
Jika infrastruktur Anda berada di ekosistem penyedia cloud, sangat disarankan untuk memanfaatkan fitur keamanan akses identitas terkelola bawaan mereka:
- AWS EC2 Instance Connect / IAM: Layanan AWS ini memungkinkan Anda menghubungkan kunci SSH secara dinamis dengan kebijakan IAM. Sistem akan mendorong (push) Public Key jangka pendek Anda ke metadata instans secara otomatis saat diperlukan, lalu menghapusnya setelah 60 detik.
- GCP OS Login: Fitur canggih dari Google Cloud ini mengikat akses SSH dan level hak cipta pengguna OS Linux secara langsung ke akun Google/Workspace. Anda tidak perlu lagi mengelola file konfigurasi
~/.ssh/authorized_keyskarena siklus kunci dikelola tersentralisasi.
Panduan Pemulihan dan Mitigasi Darurat (Recovery)
Cara Instan Mencabut (Revoke) SSH Key yang Terkompromi
Jika perangkat Anda hilang atau Private Key Anda bocor (terkompromi), Anda wajib secepat mungkin mencabut akses kunci tersebut untuk mencegah masuknya peretas:
- Login ke server target secepatnya (menggunakan perangkat lain atau via fitur Web/VNC Console dari penyedia Cloud Anda).
- Edit file otoritas menggunakan editor teks:
nano ~/.ssh/authorized_keys. - Cari dan hapus sebaris penuh kode Public Key yang berkaitan dengan kunci yang terkompromi tersebut, lalu simpan file.
- (Opsional namun Kritis) Putus paksa sesi peretas yang mungkin sudah terlanjur aktif di dalam server dengan me-restart daemon SSH:
sudo systemctl restart ssh.
Meskipun SSH Key sangat aman, selalu ada risiko Private Key terhapus, rusak, atau perangkat Anda hilang. Berikut adalah langkah darurat jika Anda terkunci dari server:
- Recovery Console (VNC): Sebagian besar penyedia VPS (seperti DigitalOcean, Linode) menyediakan fitur "Web Console" atau "VNC Access" dari dashboard mereka yang memungkinkan login langsung layaknya keyboard fisik, melewati proteksi SSH.
- Rescue Mode: Gunakan mode pemulihan untuk me-mount disk secara offline, lalu edit
~/.ssh/authorized_keysuntuk menambahkan kunci publik Anda yang baru. - Cadangkan Kunci: Selalu backup Private Key Anda ke media penyimpanan eksternal atau password manager yang terenkripsi.
Analisis Log SSH dan Integrasi SIEM Real-time
Siklus manajemen keamanan SSH tidak akan lengkap tanpa adanya pemantauan log (monitoring). Semua aktivitas autentikasi, baik yang berhasil masuk maupun yang gagal, dicatat secara detail oleh sistem Linux di dalam file log otoritas.
# Memantau percobaan login gagal secara real-time di Ubuntu/Debian
sudo tail -f /var/log/auth.log | grep "Failed password"
Untuk server Linux tunggal (CentOS menggunakan /var/log/secure), instalasi perangkat lunak mitigasi Fail2Ban sudah cukup untuk menganalisis log dan memblokir IP bot secara otomatis. Namun pada skala industri, Anda wajib mengintegrasikan pencatatan log ini ke dalam sistem SIEM (Security Information and Event Management) terpusat (seperti Splunk, Datadog, atau Elastic Security). Dengan memasang agen log (seperti Filebeat atau Promtail), seluruh aktivitas *auth.log* dari ratusan server akan dilemparkan secara *real-time* ke dasbor pusat, memungkinkan tim Security Operations Center (SOC) untuk menyalakan alarm peringatan otomatis, melakukan korelasi ancaman, dan melacak indikasi pergerakan lateral (lateral movement) dari penyerang lintas benua seketika itu juga.
Audit Keamanan SSH Otomatis (Lynis dan SSH-Audit)
Jangan sekadar menebak apakah konfigurasi server Anda sudah aman. Lakukan pengujian proaktif dengan alat pemindai kerentanan standar industri:
- Lynis: Security auditing tool yang tangguh untuk memindai kelemahan di seluruh lapisan OS Linux, termasuk inspeksi detail pada
sshd_config. Jalankansudo lynis audit systemdan temukan bagian "SSH Support". - SSH-Audit: Pemindai khusus SSH berbasis Python. Cukup jalankan
python3 ssh-audit.py target-server.comdari luar server. Alat ini mendeteksi algoritma enkripsi (Ciphers/MACs/KEX) yang lemah/usang dan memberikan saran hardening secara instan.
Referensi dan Dokumentasi Resmi
Untuk mendalami standar arsitektur dan spesifikasi teknis tingkat lanjut, silakan kunjungi referensi otoritatif eksternal berikut:
- OpenSSH Manual: https://www.openssh.com/manual.html
- Standar Kriptografi NIST SP 800-131A: https://csrc.nist.gov/publications/detail/sp/800-131a/rev-2/final
Debugging Koneksi SSH Lambat atau Gagal
Jika proses login (handshake) memakan waktu yang tidak wajar atau langsung terputus, Anda bisa menelusuri akar masalahnya menggunakan parameter verbose mode (debugging flags) pada klien SSH Anda:
ssh -v user@ip(Level 1): Menampilkan pesan debug dasar. Sangat berguna untuk melihat proses pertukaran algoritma kriptografi (Key Exchange) dan melihat kunci lokal mana saja yang dicoba ditawarkan ke server.ssh -vv user@ip(Level 2): Lebih detail. Sering digunakan untuk menelusuri kendala otentikasi, di mana Anda bisa melihat respons penolakan atau penerimaan spesifik dari daemonsshddi server target.ssh -vvv user@ip(Level 3): Mode *tracing* paling ekstrem. Menampilkan *dump* paket pertukaran hingga level *byte*. Gunakan jika handshake macet (hang) atau ada masalah aneh terkait limitasi jaringan dan proksi (ProxyJump).
FAQ (Troubleshooting Error SSH Umum)
Ringkasan Cepat:
- Permission denied: Cek
~/.ssh/authorized_keysdan izin folder (700/600). - Connection refused: Pastikan
sshdaktif dan port 22 tidak diblokir firewall. - Kunci Hilang: Gunakan VNC Console atau Rescue Mode dari provider VPS Anda.
Q Mengapa muncul error "Permission denied (publickey)"?
Error ini berarti server tidak mengenali kunci Anda. Pastikan Public Key telah dimasukkan dengan benar ke ~/.ssh/authorized_keys di server. Selain itu, sistem Linux sangat ketat soal hak akses: pastikan folder ~/.ssh memiliki izin 700 dan file authorized_keys memiliki izin 600.
Q Mengapa saya mendapatkan "Connection refused" saat SSH?
Pesan ini menandakan bahwa server secara aktif menolak sambungan Anda. Penyebab utamanya bisa karena layanan SSH (sshd) sedang mati di server, port 22 diblokir oleh Firewall (UFW/Iptables), atau Anda salah memasukkan alamat IP/Port.
Q Cara mengonfigurasi Nginx untuk Node.js clustering?
Gunakan blok upstream untuk mendefinisikan beberapa instans Node.js Anda. Kemudian arahkan proxy_pass ke nama blok upstream tersebut. Nginx secara otomatis akan mendistribusikan beban trafik (Load Balancing) menggunakan algoritma round-robin ke seluruh port backend yang tersedia.
Q Bagaimana cara melakukan load balancing dasar menggunakan Nginx?
Nginx secara native mendukung load balancing. Anda cukup menggunakan blok upstream di luar server block, dan daftarkan IP atau nama domain target server (misal: server 10.0.0.1; server 10.0.0.2;). Kemudian pada location /, gunakan proxy_pass http://nama_upstream;. Nginx akan otomatis membagi trafik ke server-server target tersebut (round-robin).
Q Bagaimana cara mengonfigurasi Nginx untuk aplikasi berbasis Docker?
Gunakan Nginx sebagai Reverse Proxy yang menunjuk ke port kontainer Docker Anda. Pada proxy_pass, arahkan ke http://localhost:PORT_DOCKER atau gunakan alamat IP jaringan Docker internal jika Nginx juga berjalan di dalam kontainer. Ini menyembunyikan port asli aplikasi dari akses publik.
Q Bagaimana cara membatasi rate limiting untuk mencegah serangan DDoS di Nginx?
Gunakan direktif limit_req_zone di dalam blok http untuk mendefinisikan zona memori berdasarkan IP pengunjung ($binary_remote_addr) dan batas ratenya (misal rate=10r/s). Kemudian aktifkan di dalam blok location menggunakan limit_req zone=nama_zona burst=5 nodelay;. Ini mencegah suatu IP membanjiri server dengan banyak permintaan dalam hitungan detik.