Menggunakan SSH key jauh lebih aman daripada password untuk login ke VPS, apalagi jika sistem kamu digunakan untuk keperluan otomatisasi seperti pengiriman transaksi realtime.
Artikel ini membahas langkah-langkah membuat SSH key di Windows, menggunakan key untuk login ke VPS, dan membackupnya dengan aman.
Kenapa Harus Pakai SSH Key?
Metode Login | Keamanan | Cocok Untuk |
---|---|---|
Password | Rentan | Akses manual biasa |
SSH Key | Kuat | Akses otomatis, produksi, dan script |
SSH key tidak bisa ditebak seperti password, dan mendukung login otomatis tanpa perlu interaksi manual β sangat cocok untuk server produksi.
Langkah 1: Install Git Bash
Untuk membuat SSH key di Windows dengan mudah, gunakan Git Bash.
Langkah 2: Buat SSH Key
Buka Git Bash lalu jalankan:
ssh-keygen -t rsa -b 4096 -C "maxsiid@vps"
Saat muncul:
Enter file in which to save the key (/c/Users/Nama/.ssh/id_rsa):
Tekan Enter untuk menyimpan ke lokasi default.
Kemudian saat ditanya:
Enter passphrase (empty for no passphrase):
- Jika untuk otomatisasi: biarkan kosong (tekan Enter 2x)
- Jika untuk keamanan tinggi: isi dengan password kuat
Langkah 3: Simpan & Backup SSH Key
File | Lokasi | Fungsi |
---|---|---|
id_rsa | C:\Users\NamaKamu\.ssh\id_rsa | π Private key (simpan aman, JANGAN upload ke VPS) |
id_rsa.pub | C:\Users\NamaKamu\.ssh\id_rsa.pub | π Public key (dikirim ke VPS) |
Backup id_rsa
ke flashdisk atau cloud pribadi dalam bentuk .zip
+ password.
π Jika id_rsa.pub
Terhapus
Selama file id_rsa
masih ada, kamu bisa membuat ulang id_rsa.pub
dengan perintah berikut:
ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
Di Git Bash (Windows):
ssh-keygen -y -f /c/Users/NamaKamu/.ssh/id_rsa > /c/Users/NamaKamu/.ssh/id_rsa.pub
Langkah 4: Kirim Public Key ke VPS
- Buka file
id_rsa.pub
di Notepad dan salin semua isinya - Login ke VPS seperti biasa (pakai password):
ssh [email protected]
- Di VPS, jalankan:
mkdir -p ~/.ssh
nano ~/.ssh/authorized_keys
Paste isi public key ke file tersebut, lalu simpan
Atur permission:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Langkah 5: Coba Login Tanpa Password
Di Git Bash:
ssh [email protected]
Jika berhasil tanpa diminta password, artinya key sudah aktif.
Langkah 6: Nonaktifkan Login Password SSH
Lakukan ini hanya jika login SSH key kamu sudah berhasil dan stabil.
- Login ke VPS menggunakan SSH key
- Edit file konfigurasi SSH:
sudo nano /etc/ssh/sshd_config
- Temukan baris:
#PasswordAuthentication yes
dan ubah menjadi:
PasswordAuthentication no
- (Opsional) Tambahkan ini juga untuk keamanan maksimal:
PermitRootLogin no
ChallengeResponseAuthentication no
UsePAM no
- Simpan file, lalu restart SSH:
sudo systemctl restart ssh
- Uji login dari terminal baru. Jika berhasil login tanpa password, konfigurasi aman β
Tambahan: Menggunakan SSH Key di WSL (Windows Subsystem for Linux)
Kamu bisa menggunakan SSH key dari Windows dalam WSL, atau menyalinnya ke direktori Linux:
πΉ Opsi 1: Salin ke WSL (Disarankan)
mkdir -p ~/.ssh
cp /mnt/c/Users/User/.ssh/id_rsa ~/.ssh/
cp /mnt/c/Users/User/.ssh/id_rsa.pub ~/.ssh/
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
SSH akan otomatis mengenali key saat kamu login:
ssh [email protected]
πΉ Opsi 2: Gunakan langsung dari path Windows (tidak disarankan untuk otomatisasi)
ssh -i /mnt/c/Users/User/.ssh/id_rsa [email protected]
Namun cara ini tidak dikenali otomatis oleh Git atau ssh-agent.
Tambahan: Mengaktifkan ssh-agent
di Windows (PowerShell)
Jika kamu ingin menggunakan ssh-add
untuk menyimpan passphrase sementara:
Buka PowerShell sebagai Administrator
Aktifkan layanan ssh-agent:
Set-Service -Name ssh-agent -StartupType Automatic
Start-Service ssh-agent
- Tambahkan SSH key ke agent:
ssh-add $env:USERPROFILE\.ssh\id_rsa
Jika berhasil, akan muncul:
Identity added: C:/Users/User/.ssh/id_rsa
- Cek status ssh-agent:
Get-Service ssh-agent
Harus menunjukkan status: Running
Jika masih gagal, pastikan fitur OpenSSH Authentication Agent sudah aktif di βFitur opsional Windowsβ.
Apakah Ini 100% Aman?
Tidak ada sistem yang benar-benar 100% aman, tapi dengan setup ini kamu sudah menutup hampir semua celah umum:
Fitur | Status | Keterangan |
---|---|---|
SSH Key tanpa password server | β Aman | Tidak bisa di-brute-force seperti password |
Private key disimpan lokal & dibackup | β Aman | Selama id_rsa tidak bocor atau disebarkan |
PasswordAuthentication dinonaktifkan | β Aman | Server menolak login pakai password |
Permission .ssh diatur dengan benar | β Aman | Mencegah penyalahgunaan key |
Public key tidak bisa dipakai keluar | β Aman | Tanpa id_rsa , public key tidak berguna |
Tetap pastikan:
- Komputermu bersih dari malware
- SSH key tidak dibagikan
- Server hanya dibuka dari IP tertentu jika bisa (firewall)
Dengan langkah-langkah ini, kamu sudah mengikuti best practice DevOps dan aman untuk digunakan di lingkungan produksi.
Tips Tambahan
π Masih diminta passphrase?
Itu artinya kamu mengisi passphrase saat buat key.
Ketik saja passphrase-nya saat diminta. Agar tidak diminta terus:
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
π Untuk Otomatisasi (Tanpa Prompt)
Jika ingin otomatis penuh (tanpa passphrase), buat ulang key tanpa passphrase, upload ulang public key-nya, dan gunakan untuk script.
Penutup
SSH Key adalah cara terbaik untuk menjaga akses ke VPS tetap aman dan siap digunakan dalam skenario otomatis seperti pengiriman data transaksi realtime. Jangan lupa:
- Jangan pernah upload
id_rsa
ke VPS - Backup
id_rsa
ke tempat aman - Coba login sebelum menonaktifkan password login
Siap untuk produksi? Jalankan dengan SSH key π