$type=ticker$cols=4

$type=slider$meta=0$snip=0$rm=0

Setup Two-Factor Authentication (2FA / TOTP) untuk SSH di Linux Server: Amankan Akses Root dan Sudo dari Pembobolan Kredensial

Protokol Secure Shell (SSH) adalah pintu gerbang utama administrasi server Linux di seluruh dunia. Karena signifikansinya, port SSH (por...

Panduan Setup Two-Factor Authentication 2FA TOTP SSH di Linux Server Menggunakan Google Authenticator

Protokol Secure Shell (SSH) adalah pintu gerbang utama administrasi server Linux di seluruh dunia. Karena signifikansinya, port SSH (port 22) menjadi target paling favorit bagi botnet global yang melancarkan serangan brute-force, credential stuffing, hingga eksploitasi kunci yang bocor. Menggunakan SSH Key (seperti Ed25519) memang meningkatkan keamanan dibandingkan password statis, namun tetap memiliki celah jika laptop teknisi terinfeksi malware infostealer atau private key tersalin tanpa sengaja.

Untuk mencapai tingkat keamanan standar defense-in-depth, sistem autentikasi server wajib menerapkan Two-Factor Authentication (2FA / MFA) berbasis Time-based One-Time Password (TOTP). Dengan modul PAM Google Authenticator, setiap kali seseorang melakukan SSH ke server, mereka wajib memasukkan dua faktor validasi: sesuatu yang Anda miliki (kunci privat SSH) dan kode token 6 digit dinamis dari ponsel yang berganti setiap 30 detik.

1. Instalasi Modul PAM Google Authenticator di Linux

Modul autentikasi PAM (Pluggable Authentication Modules) untuk Google Authenticator tersedia di repositori resmi distro Linux berbasis Debian/Ubuntu maupun RHEL/Rocky Linux:

# Update repository dan instal paket PAM Google Authenticator (Ubuntu/Debian)
sudo apt update
sudo apt install -y libpam-google-authenticator

# Untuk Rocky Linux / AlmaLinux / RHEL 9
# sudo dnf install -y epel-release
# sudo dnf install -y google-authenticator

2. Generate Secret Key dan QR Code TOTP per User

Konfigurasi 2FA dilakukan secara individual untuk setiap user yang berhak login. Jalankan wizard interaktif di terminal dengan user yang bersangkutan (hindari menjalankan sebagai root jika ingin mengamankan user reguler):

# Eksekusi wizard pembuatan kunci TOTP
google-authenticator

Wizard akan mengajukan serangkaian pertanyaan krusial. Jawab sesuai rekomendasi keamanan produksi berikut:

  • Do you want authentication tokens to be time-based (y/n)? → y (Memilih skema TOTP berbasis waktu standar RFC 6238).
  • Terminal akan mencetak QR Code ASCII berukuran besar, Secret Key, Verification Code, dan 5 buah Emergency Scratch Codes.
  • Buka aplikasi authenticator di smartphone Anda (Google Authenticator, Aegis, 2FAS, atau Bitwarden Authenticator), lalu scan QR code tersebut.
  • Do you want me to update your "~/.google_authenticator" file (y/n)? → y (Menyimpan secret key ke file konfigurasi user).
  • Do you want to disallow multiple uses of the same authentication token (y/n)? → y (Mencegah serangan replay attacks, 1 token hanya valid sekali pakai).
  • By default, a new token is generated every 30 seconds... Increase window size? (y/n)? → n (Menolak pelebaran jendela waktu untuk menjaga presisi keamanan ketat).
  • Do you want to enable rate-limiting (y/n)? → y (Membatasi maksimal 3 percobaan login per 30 detik untuk menangkis brute-force).
# CONTOH EMERGENCY SCRATCH CODES (Wajib Catat dan Simpan di Password Manager):
# 48291048
# 19284756
# 83920194
# 57483920
# 92837401

3. Konfigurasi Integrasi PAM (/etc/pam.d/sshd)

Buka konfigurasi PAM untuk OpenSSH daemon menggunakan editor teks dengan hak akses sudo:

sudo nano /etc/pam.d/sshd

Gulir ke baris paling bawah file, lalu tambahkan direktif berikut:

# Integrasi TOTP Google Authenticator
auth required pam_google_authenticator.so nullok

Catatan parameter nullok: Parameter ini memungkinkan masa transisi yang aman. Pengguna yang belum menjalankan perintah google-authenticator masih dapat login menggunakan SSH key tanpa 2FA. Setelah seluruh sysadmin mengonfigurasi TOTP, hapus kata nullok agar 2FA menjadi kewajiban mutlak tanpa toleransi.

4. Mengonfigurasi OpenSSH Server (/etc/ssh/sshd_config)

Selanjutnya, instruksikan daemon SSH agar meminta tantangan interaktif keyboard setelah kunci publik berhasil diverifikasi:

sudo nano /etc/ssh/sshd_config
# Atau edit file drop-in: /etc/ssh/sshd_config.d/2fa.conf

Pastikan baris-baris parameter berikut disetel dengan tepat:

# Aktifkan otentikasi interaktif keyboard untuk PAM
KbdInteractiveAuthentication yes
UsePAM yes

# Wajibkan kombinasi Public Key DIIKUTI DENGAN Kode TOTP
AuthenticationMethods publickey,keyboard-interactive

Uji validitas sintaks konfigurasi SSH sebelum me-restart daemon:

# Cek apakah ada error penulisan sintaks
sudo sshd -t

# Restart service OpenSSH
sudo systemctl restart ssh
# Pada CentOS/RHEL: sudo systemctl restart sshd
PENTING - Jangan Tutup Sesi SSH Anda Saat Ini: Setelah me-restart daemon SSH, JANGAN PERNAH menutup terminal aktif yang sedang Anda gunakan. Buka jendela terminal baru di komputer lokal Anda, lalu coba lakukan login SSH ke server. Jika terjadi kesalahan ketik atau token gagal diterima, sesi SSH aktif pertama Anda tetap terbuka untuk melakukan perbaikan konfigurasi darurat.

5. Pengujian Skenario Login 2FA

Buka terminal client baru dan lakukan koneksi SSH:

ssh user@server-ip
# Output:
# Authenticated with partial success.
# (Verifikasi SSH Key berhasil, sistem meminta faktor kedua)
# Verification code: [Ketik 6 digit angka dari aplikasi TOTP]

Jika kode yang dimasukkan tepat, Anda akan langsung masuk ke shell Linux. Jika kode salah atau kedaluwarsa, akses akan ditolak seketika (Permission denied).

Kesimpulan

Menerapkan Two-Factor Authentication (2FA) pada layanan SSH adalah salah satu langkah mitigasi paling efektif dalam melindungi server Linux dari ancaman kompromi kredensial. Kombinasi pasangan kunci publik Ed25519 dan token TOTP Google Authenticator memastikan bahwa pencurian private key sekalipun tidak cukup bagi peretas untuk menembus benteng pertahanan infrastruktur Anda.

COMMENTS

Name

1clickInstall,1,404,1,android,1,Apache2,1,API Telegram,1,Apple,3,AWS,1,Backup,1,bapak internet indonesia,1,blkid,1,booting,1,brainware,1,calc,1,can't mount,3,can't read superblock,1,cara mengatasi disk failure,1,cara mengatasi disk penuh,1,cara mengatasi error disk,1,cara mengatasi error proxmox,1,cara mengatasi log full,1,centOS,1,certificate,1,Chrome,1,cinta sang penguasa,1,CLI,1,Cloud Computing,10,Cloud Storage,6,Clustering,1,Codec,1,CodeIgniter,2,computare,4,computer,4,Cybersecurity,6,dakwah,16,Data Mining,1,dd,1,Debian,2,Deepin Linux,1,DevOps,2,digital,1,Docker,8,dosa,1,dosa besar,1,Enkripsi,1,era digital,1,error certificate,1,error path,1,error subscription,1,excel,1,failed subscription,1,Fedora,1,fedora26,1,Feeder,1,fstab,1,ftp server,1,fujitsu,1,gambar,1,ghibah,1,Git,2,GitHub,2,gitignore,1,gitignore not work,1,Google,2,Google Chrome,1,Google Cloud,1,Google Drive,2,google-drive-ocamlfuse,1,Harddisk,1,Hardware,1,Hashing,1,HDD,2,history,1,host,1,Hostname,1,how to,2,IAM,1,igmp proxy,1,Ilmu Komputer,1,impress,1,indihome,1,INDUKSI MATEMATIKA,1,instalasi,3,install,10,install GIT,1,install linux,6,internet,2,islam,17,javascript,1,K-Means,1,KDE Plasma,1,keamanan,1,Keamanan Cloud,2,keamanan data,1,Keamanan Jaringan,1,keynote,1,kodi,1,komputer,5,kuliah,1,Latte-dock,1,leap,7,leap 42.3,1,LibreOffice,1,Linux,53,linux ringan,3,Machine Learning,1,machintos,4,macOS,5,mageia,1,mandriva,1,mate,1,microsoft office,2,microsoft windows,4,microsoft word,1,Mikrotik,3,mint,1,Monitoring,1,mount,4,mounting,1,Multimedia Codec,1,Netwatch,1,network,1,network security,1,Networking,7,Nextcloud,1,node js,1,NTFS,3,ntfsfix,2,numbers,1,office,5,Online Account,1,onno,1,onnowpurbo,1,Open Source,3,OpenMandriva,1,OpenOffice,2,openoffice calc,1,openoffice writer,1,openSUSE,11,operating system,1,ownCloud,1,ownCloud Client,1,PAGES,1,PDDikti,1,pemikir islam,1,pengguna,1,perangkat keras,1,Perangkat Lunak,2,PHP,1,PHP 5,1,PKI,1,port 80,1,port 8082,1,postel sevice award,1,Powerpoint,1,presentasi,1,presentation,1,Privacy,1,Proxmox,13,PVE,1,q4os,1,remaja islam,2,review,7,rezeki,1,s1300i,1,scanner,1,scansnap,1,Security,5,sejarah,1,Server,15,setting,1,Sistem Operasi,2,Software,2,spreadsheet,1,SSH,1,SSO,1,stb,1,Storage,4,sukses dunia akhirat,1,Sysadmin,10,Telegram,1,telkom,1,tesseract,1,text,1,Tutorial,26,tv box,1,Ubuntu,3,Unsupervised Learning,1,usb drive,1,useetv,1,user,1,VBA,1,version control,1,virtual machine,2,Virtualization,4,Visual basic,1,Visual Basic for Applications,1,VLC,2,VLC Media Player,1,vsftpd,1,whatsapp api,1,winbox,1,Windows,7,Windows 7,1,word,1,WORD PROCESSOR,2,workstation,1,WPS Office,1,zypper,1,
ltr
item
zhato TECH: Setup Two-Factor Authentication (2FA / TOTP) untuk SSH di Linux Server: Amankan Akses Root dan Sudo dari Pembobolan Kredensial
Setup Two-Factor Authentication (2FA / TOTP) untuk SSH di Linux Server: Amankan Akses Root dan Sudo dari Pembobolan Kredensial
zhato TECH
http://www.zhato-tech.id/2026/11/setup-two-factor-authentication-2fa.html
http://www.zhato-tech.id/
http://www.zhato-tech.id/
http://www.zhato-tech.id/2026/11/setup-two-factor-authentication-2fa.html
true
740282316614930842
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content