Cara membuat SSH Key di Windows untuk login ke server Linux tanpa password sebenarnya cukup sederhana. Windows 10 dan Windows 11 sudah mendukung OpenSSH, sehingga pengguna bisa membuat kunci melalui PowerShell atau Command Prompt tanpa harus memasang aplikasi tambahan.
Login ke server Linux melalui SSH biasanya membutuhkan username dan password. Namun, jika sering mengelola VPS, server website, atau komputer Linux jarak jauh, memasukkan password setiap kali terhubung bisa terasa merepotkan.
Salah satu solusinya adalah menggunakan SSH Key. Metode autentikasi ini memungkinkan Windows mengenali server melalui pasangan kunci kriptografi, sehingga pengguna dapat masuk tanpa mengetik password akun Linux setiap kali melakukan koneksi.
Dalam panduan ini, prosesnya dimulai dari pemeriksaan OpenSSH, pembuatan pasangan kunci, pemasangan public key ke server Linux, hingga pengujian koneksi. Setiap tahap juga dilengkapi solusi apabila perintah yang dijalankan mengalami kendala.
Pengertian SSH Key dan Keunggulannya untuk Login ke Server Linux
SSH Key adalah pasangan kunci kriptografi yang digunakan untuk mengautentikasi pengguna ketika mengakses server melalui protokol Secure Shell (SSH). Sistem ini menggunakan dua bagian utama, yaitu public key dan private key.
Public key dipasang pada server Linux, sedangkan private key disimpan di komputer Windows milik pengguna. Keduanya memiliki hubungan matematis yang memungkinkan server memverifikasi bahwa koneksi berasal dari perangkat yang memiliki private key yang sesuai.
Berbeda dengan autentikasi password biasa, pengguna tidak perlu mengirimkan private key kepada server. Proses pembuktian identitas dilakukan melalui mekanisme kriptografi sehingga kunci rahasia tetap berada di perangkat pengguna.
Perbedaan public key dan private key
Sebelum membuat SSH Key, penting memahami fungsi kedua file tersebut. Kesalahan dalam mengelola salah satunya dapat menyebabkan pengguna gagal login atau kehilangan akses ke server.
| Komponen | Fungsi | Lokasi penyimpanan |
|---|---|---|
| Public Key | Dipasang pada server untuk memverifikasi identitas pengguna | Server Linux |
| Private Key | Digunakan untuk membuktikan kepemilikan pasangan kunci | Komputer Windows |
Biasanya, OpenSSH menyimpan kedua file tersebut di folder .ssh dalam direktori pengguna Windows. Contohnya, file id_ed25519 merupakan private key, sedangkan id_ed25519.pub adalah public key.
Hal paling penting: jangan pernah mengirimkan atau membagikan private key kepada orang lain. Jika file tersebut bocor, pihak lain berpotensi menggunakannya untuk mencoba mengakses server yang mengizinkan kunci tersebut.
Keunggulan menggunakan SSH Key
Penggunaan SSH Key memberikan beberapa keuntungan, terutama bagi administrator server, developer, dan pemilik website yang sering melakukan pengelolaan melalui terminal.
- Login lebih praktis: pengguna tidak perlu memasukkan password akun server setiap kali terhubung, selama autentikasi SSH Key sudah berhasil dikonfigurasi.
- Keamanan lebih baik: autentikasi menggunakan kriptografi kunci publik sehingga tidak bergantung pada password login yang mudah ditebak.
- Mendukung otomatisasi: SSH Key dapat digunakan untuk menjalankan Git, deployment aplikasi, transfer file, dan berbagai pekerjaan administrasi server.
- Mengurangi risiko serangan password: server tidak harus mengandalkan password sebagai satu-satunya metode autentikasi.
- Mudah dikelola: administrator dapat menambahkan atau menghapus public key tertentu tanpa harus mengganti password semua pengguna.
Meskipun demikian, SSH Key bukan berarti server otomatis kebal terhadap serangan. Keamanan tetap bergantung pada perlindungan private key, pengaturan SSH server, dan kebiasaan pengguna dalam mengelola akses.
Jenis SSH Key yang sebaiknya digunakan
OpenSSH mendukung beberapa algoritma untuk membuat pasangan kunci. Namun, tidak semua algoritma memiliki tingkat keamanan, ukuran, dan kompatibilitas yang sama.
Berikut beberapa jenis yang umum ditemukan:
| Jenis kunci | Karakteristik | Rekomendasi |
|---|---|---|
| Ed25519 | Modern, cepat, dan ukuran kunci relatif kecil | Pilihan utama untuk server yang mendukungnya |
| RSA | Memiliki kompatibilitas luas dengan sistem lama | Gunakan ukuran minimal 3072 bit jika diperlukan |
| ECDSA | Menggunakan kriptografi kurva eliptik | Dapat digunakan jika sesuai kebijakan keamanan |
Untuk penggunaan umum, Ed25519 merupakan pilihan yang praktis dan direkomendasikan selama server Linux mendukungnya. Jika harus terhubung ke perangkat lama yang belum mendukung Ed25519, RSA dapat menjadi alternatif.
Persiapan Windows Sebelum Membuat SSH Key untuk Akses Server
Sebelum menjalankan perintah pembuatan kunci, pastikan Windows sudah memiliki OpenSSH Client. Komponen ini menyediakan perintah ssh, ssh-keygen, dan ssh-add yang diperlukan untuk mengelola autentikasi.
OpenSSH Client tersedia sebagai fitur opsional pada Windows 10 dan Windows 11. Pada sebagian komputer, komponen tersebut sudah terpasang sejak awal, tetapi ada juga perangkat yang belum mengaktifkannya.
1. Periksa apakah OpenSSH sudah tersedia
Buka PowerShell atau Command Prompt melalui menu Start. Kamu tidak harus menggunakan hak Administrator untuk sekadar memeriksa ketersediaan OpenSSH.
Jalankan perintah berikut:
ssh -V
Jika OpenSSH sudah terpasang, Windows akan menampilkan informasi versi yang digunakan. Tampilan versinya dapat berbeda bergantung pada pembaruan sistem dan paket OpenSSH.
Selain itu, periksa apakah perintah pembuat kunci tersedia:
ssh-keygen
Jika muncul informasi penggunaan perintah atau pilihan untuk membuat kunci, berarti program tersebut dapat dijalankan. Jangan melanjutkan pembuatan kunci jika Windows justru menampilkan pesan bahwa perintah tidak dikenali.
2. Instal OpenSSH Client jika belum tersedia
Apabila perintah ssh tidak dikenali, kamu perlu memasang fitur OpenSSH Client terlebih dahulu. Windows menyediakan pemasangan melalui menu Settings maupun PowerShell dengan hak Administrator.
Cara melalui pengaturan Windows:
- Buka menu Settings.
- Masuk ke bagian System.
- Pilih Optional Features.
- Cari OpenSSH Client pada daftar fitur yang terpasang.
- Jika belum tersedia, pilih View features atau opsi penambahan fitur.
- Cari OpenSSH Client, lalu pilih Install.
Nama menu dapat sedikit berbeda tergantung versi Windows 10 atau Windows 11. Pastikan memilih OpenSSH Client, bukan hanya OpenSSH Server, karena kebutuhan artikel ini adalah membuat koneksi keluar menuju server Linux.
Jika lebih nyaman menggunakan PowerShell Administrator, jalankan perintah berikut:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Tunggu sampai proses instalasi selesai. Setelah itu, tutup terminal dan buka kembali PowerShell untuk memastikan perintah SSH sudah dapat digunakan.
Untuk memeriksa hasil instalasi, jalankan:
ssh -V
Jika informasi versi sudah muncul, Windows siap digunakan untuk membuat SSH Key.
3. Siapkan informasi akses server Linux
Sebelum menyalin public key, pastikan kamu sudah memiliki informasi koneksi server. Informasi ini biasanya diberikan ketika menyewa VPS atau membuat server Linux melalui layanan cloud.
Data yang perlu disiapkan meliputi:
- Alamat IP publik atau hostname server.
- Username Linux yang memiliki izin login SSH.
- Password awal jika server masih menggunakan autentikasi password.
- Port SSH yang digunakan, biasanya port 22.
- Akses ke server melalui terminal atau console penyedia VPS.
Contoh informasi koneksi yang akan digunakan dalam tutorial ini:
| Informasi | Contoh |
|---|---|
| IP server | 192.0.2.10 |
| Username | ubuntu |
| Port SSH | 22 |
| Sistem operasi | Ubuntu Linux |
Alamat IP tersebut hanya contoh dokumentasi. Ganti dengan alamat server sebenarnya sebelum menjalankan perintah.
Catatan: Jika server menggunakan port SSH khusus, kamu harus mengetahui nomor port tersebut. Koneksi ke port yang salah akan gagal meskipun SSH Key sudah dibuat dengan benar.
Cara Membuat SSH Key Menggunakan OpenSSH melalui PowerShell atau CMD
Setelah OpenSSH tersedia, langkah berikutnya adalah membuat pasangan kunci menggunakan perintah ssh-keygen. Proses ini akan menghasilkan dua file yang nantinya digunakan untuk autentikasi ke server Linux.
Untuk penggunaan umum, gunakan algoritma Ed25519 karena lebih praktis dan sudah didukung oleh banyak sistem Linux modern. Pastikan server tujuan juga mendukung algoritma tersebut.
1. Buka PowerShell atau Command Prompt
Tekan tombol Windows pada keyboard, kemudian ketik PowerShell. Kamu juga dapat menggunakan Command Prompt jika lebih terbiasa dengan antarmuka CMD.
Tidak perlu menjalankan terminal sebagai Administrator untuk membuat SSH Key pribadi. Kunci akan disimpan pada direktori pengguna Windows sehingga tidak membutuhkan izin administrasi sistem.
2. Jalankan perintah ssh-keygen
Masukkan perintah berikut pada terminal:
ssh-keygen -t ed25519 -C "akses-server-linux"
Penjelasan setiap bagian perintah:
ssh-keygenmerupakan program untuk membuat pasangan kunci SSH.-t ed25519menentukan algoritma yang digunakan.-Cmenambahkan komentar sebagai penanda kunci agar mudah dikenali.
Komentar akses-server-linux hanya berfungsi sebagai identitas atau keterangan. Kamu dapat menggantinya dengan nama server, nama proyek, atau keterangan lain yang mudah diingat.
3. Tentukan lokasi penyimpanan SSH Key
Setelah perintah dijalankan, terminal akan menampilkan pertanyaan mengenai lokasi penyimpanan file.
Contoh tampilannya:
Enter file in which to save the key
(C:\Users\NamaPengguna/.ssh/id_ed25519):
Jika belum pernah membuat kunci dengan nama tersebut, cukup tekan Enter untuk menggunakan lokasi bawaan. Windows biasanya menyimpan file di direktori berikut:
C:\Users\NamaPengguna\.ssh\
Jika sebelumnya sudah memiliki file dengan nama yang sama, terminal akan menampilkan peringatan bahwa file tersebut akan ditimpa. Jangan menekan Enter secara sembarangan karena tindakan tersebut dapat menggantikan kunci lama dan membuat akses ke server lain terganggu.
Untuk menghindari konflik, gunakan nama berbeda, misalnya:
C:\Users\NamaPengguna\.ssh\id_ed25519_vps
Dengan cara ini, kamu dapat memiliki kunci terpisah untuk beberapa server atau kebutuhan pekerjaan.
4. Buat passphrase untuk melindungi private key
Setelah menentukan lokasi file, terminal akan meminta passphrase. Passphrase merupakan kata sandi tambahan yang digunakan untuk melindungi private key ketika tersimpan di komputer.
Contoh tampilannya:
Enter passphrase (empty for no passphrase):
Kamu dapat membuat passphrase yang kuat atau menekan Enter jika memang ingin menggunakan private key tanpa perlindungan tambahan tersebut.
Untuk keamanan yang lebih baik, disarankan menggunakan passphrase. Dengan begitu, seseorang yang mendapatkan file private key tidak langsung dapat menggunakannya tanpa mengetahui passphrase.
Masukkan passphrase sekali lagi ketika diminta untuk memastikan tidak ada kesalahan pengetikan. Karakter yang dimasukkan biasanya tidak ditampilkan di layar, sehingga jangan menganggap terminal mengalami kerusakan ketika tidak ada teks yang muncul.
5. Pastikan SSH Key berhasil dibuat
Jika proses selesai, OpenSSH akan menampilkan informasi bahwa identitas dan public key telah berhasil disimpan.
Periksa isi folder .ssh menggunakan perintah berikut:
Get-ChildItem "$env:USERPROFILE\.ssh"
Jika menggunakan nama bawaan, biasanya akan muncul dua file berikut:
id_ed25519
id_ed25519.pub
File pertama merupakan private key, sedangkan file kedua adalah public key yang nantinya dipasang pada server Linux.
Untuk melihat isi public key, jalankan:
Get-Content "$env:USERPROFILE\.ssh\id_ed25519.pub"
Hasilnya berupa satu baris teks panjang yang biasanya diawali dengan ssh-ed25519. Baris tersebut merupakan informasi yang akan disalin ke server.
Jangan menggunakan isi file id_ed25519 untuk proses penyalinan. File tersebut adalah private key dan harus tetap disimpan secara rahasia di komputer Windows.
6. Jika ingin membuat SSH Key RSA
Apabila server Linux yang digunakan belum mendukung Ed25519, kamu dapat membuat kunci RSA sebagai alternatif. Jalankan perintah berikut:
ssh-keygen -t rsa -b 3072 -C "akses-server-linux"
Opsi -b 3072 menentukan ukuran kunci RSA sebesar 3072 bit. Ukuran ini menjadi pilihan yang lebih baik dibandingkan RSA berukuran 1024 bit yang sudah tidak direkomendasikan untuk penggunaan modern.
Simpan kunci menggunakan nama file berbeda agar tidak menimpa pasangan kunci Ed25519 sebelumnya. Setelah itu, proses pemasangan public key ke server Linux tetap mengikuti tahapan yang sama.
Langkah Menyalin Public Key ke Server Linux agar Bisa Login Tanpa Password
Setelah pasangan SSH Key berhasil dibuat, public key harus dipasang pada akun Linux yang akan digunakan untuk login. Server membaca daftar public key yang diizinkan melalui file authorized_keys di direktori .ssh milik pengguna.
Pada sistem Linux, setiap akun memiliki direktori home masing-masing. Artinya, jika public key dipasang pada akun ubuntu, kunci tersebut tidak otomatis berlaku untuk akun root atau pengguna lainnya.
1. Pastikan public key sudah tersedia di Windows
Sebelum melakukan koneksi, pastikan file public key memiliki ekstensi .pub. Untuk kunci Ed25519 dengan nama bawaan, lokasinya biasanya:
C:\Users\NamaPengguna\.ssh\id_ed25519.pub
Kamu dapat menampilkan isi file menggunakan PowerShell:
Get-Content "$env:USERPROFILE\.ssh\id_ed25519.pub"
Salin seluruh baris yang ditampilkan jika ingin memasangnya secara manual. Jangan memotong bagian awal maupun akhir karena satu karakter yang hilang dapat menyebabkan server gagal membaca kunci.
2. Hubungkan Windows ke server Linux
Jika server masih menggunakan autentikasi password, lakukan koneksi awal menggunakan perintah SSH biasa.
ssh ubuntu@192.0.2.10
Ganti ubuntu dengan username Linux dan 192.0.2.10 dengan IP server sebenarnya. Jika menggunakan port khusus, tambahkan opsi -p, misalnya:
ssh -p 2222 ubuntu@192.0.2.10
Pada koneksi pertama, SSH biasanya menampilkan pertanyaan untuk memverifikasi sidik jari atau host key server. Pastikan fingerprint tersebut sesuai dengan informasi dari administrator atau penyedia VPS sebelum mengetik yes.
Setelah terhubung, masukkan password akun Linux jika diminta. Tahap ini diperlukan karena public key belum dipasang pada server.
3. Buat direktori .ssh di server Linux
Setelah berhasil masuk, periksa apakah direktori .ssh sudah tersedia. Jika belum, buat direktori tersebut menggunakan perintah:
mkdir -p ~/.ssh
Direktori ini digunakan untuk menyimpan informasi autentikasi SSH milik akun yang sedang digunakan. Opsi -p membuat perintah tetap berhasil apabila direktori sudah tersedia.
Atur izin direktori agar hanya pemilik akun yang memiliki akses penuh:
chmod 700 ~/.ssh
Pengaturan ini penting karena OpenSSH dapat menolak public key apabila izin direktori penyimpanannya terlalu terbuka.
4. Salin public key dari Windows ke server
Ada beberapa cara untuk memasang public key. Jika menggunakan Windows, salah satu metode paling praktis adalah mengirimkan isi file .pub melalui koneksi SSH.
Keluar dari sesi server terlebih dahulu menggunakan perintah:
exit
Kemudian jalankan perintah berikut di PowerShell Windows:
Get-Content "$env:USERPROFILE\.ssh\id_ed25519.pub" | ssh ubuntu@192.0.2.10 "umask 077; mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys"
Perintah tersebut membaca public key dari Windows, kemudian mengirimkannya ke server melalui koneksi SSH. Bagian cat >> menambahkan kunci ke file authorized_keys tanpa menghapus kunci lain yang sudah tersimpan.
Ganti username dan alamat IP sesuai informasi server milikmu. Jika menggunakan port khusus, tambahkan -p 2222 setelah perintah ssh, sebelum username dan alamat server.
Apabila terminal meminta password, masukkan password akun Linux yang digunakan untuk login awal. Setelah perintah selesai tanpa pesan kesalahan, public key seharusnya sudah tersimpan di server.
Alternatif melalui CMD: Jika menggunakan Command Prompt, kamu dapat menjalankan perintah berikut:
type "%USERPROFILE%\.ssh\id_ed25519.pub" | ssh ubuntu@192.0.2.10 "umask 077; mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys"
Kedua cara tersebut memiliki tujuan yang sama. Pilih salah satu sesuai terminal yang sedang digunakan.
5. Atur izin file authorized_keys
Setelah public key disalin, masuk kembali ke server menggunakan metode login yang masih tersedia. Kemudian jalankan perintah berikut:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Izin 700 membatasi akses direktori .ssh kepada pemiliknya. Sementara itu, izin 600 memastikan file authorized_keys hanya dapat dibaca dan ditulis oleh pemilik akun.
Pada sebagian sistem Linux, kepemilikan file juga perlu diperiksa. Jalankan perintah berikut jika kamu memiliki akses yang sesuai:
chown -R "$USER":"$(id -gn)" ~/.ssh
Perintah tersebut memastikan direktori dan file SSH dimiliki oleh akun yang sedang digunakan. Jangan menjalankan perubahan kepemilikan pada direktori yang salah karena dapat mengganggu konfigurasi pengguna lain.
6. Pastikan SSH server mengizinkan autentikasi public key
Sebagian besar instalasi OpenSSH Server modern sudah mengaktifkan autentikasi public key secara default. Namun, administrator dapat mengubah pengaturan tersebut sesuai kebijakan keamanan server.
Periksa konfigurasi SSH server pada file berikut:
sudo nano /etc/ssh/sshd_config
Cari pengaturan:
PubkeyAuthentication yes
Pastikan autentikasi public key tidak dinonaktifkan. Periksa juga pengaturan AuthorizedKeysFile apabila server menggunakan lokasi penyimpanan kunci khusus.
Jika kamu mengubah konfigurasi, simpan file dan periksa validitasnya sebelum memuat ulang layanan:
sudo sshd -t
Jika tidak muncul pesan kesalahan, konfigurasi dapat dimuat ulang menggunakan perintah:
sudo systemctl reload ssh
Pada beberapa distribusi Linux, nama layanan dapat berupa sshd, sehingga perintahnya menjadi:
sudo systemctl reload sshd
Jangan menonaktifkan autentikasi password sebelum login menggunakan SSH Key benar-benar berhasil. Jika pengaturan salah dan kamu belum memiliki akses alternatif, kamu berisiko terkunci di luar server.
Cara Menguji Koneksi SSH Key dan Memastikan Autentikasi Berhasil
Setelah public key dipasang dan izin file diatur, langkah selanjutnya adalah menguji koneksi dari Windows. Pengujian ini memastikan bahwa server benar-benar menggunakan pasangan kunci yang telah dibuat, bukan masih mengandalkan autentikasi password.
Gunakan akun dan alamat server yang sama seperti ketika memasang public key. Jika menggunakan nama file kunci khusus, sertakan lokasi private key pada perintah koneksi.
1. Coba login menggunakan SSH Key
Buka kembali PowerShell dan jalankan:
ssh ubuntu@192.0.2.10
Jika menggunakan nama private key bawaan, OpenSSH biasanya dapat menemukannya secara otomatis melalui direktori .ssh. Namun, jika kamu menyimpan kunci dengan nama berbeda, gunakan opsi -i.
Contohnya: ssh -i “$env:USERPROFILE\.ssh\id_ed25519_vps” ubuntu@192.0.2.10
Apabila private key dilindungi passphrase, terminal akan meminta passphrase tersebut. Ini berbeda dengan password akun Linux karena passphrase hanya digunakan untuk membuka private key di komputer Windows.
Jika konfigurasi berhasil, kamu akan langsung masuk ke terminal Linux tanpa diminta password akun server. Kondisi ini menunjukkan autentikasi menggunakan SSH Key telah berjalan.
2. Pastikan login benar-benar menggunakan public key
Agar lebih yakin, kamu dapat menjalankan koneksi dengan mode pemeriksaan detail. Gunakan opsi -v untuk melihat proses autentikasi SSH. ssh -v ubuntu@192.0.2.10
OpenSSH akan menampilkan informasi proses koneksi, termasuk pencarian identitas dan metode autentikasi yang digunakan. Cari baris yang menunjukkan bahwa autentikasi public key berhasil.
Salah satu informasi yang dapat muncul adalah: Authenticated to 192.0.2.10 using “publickey”.
Pesan tersebut menunjukkan server menerima kunci yang diberikan dan mengizinkan login. Jika masih muncul permintaan password akun Linux, berarti autentikasi public key belum berhasil atau server masih menggunakan metode password sebagai alternatif.
3. Gunakan SSH Agent agar tidak terus memasukkan passphrase
Jika private key dilindungi passphrase, kamu mungkin perlu memasukkannya setiap kali membuka koneksi baru. Untuk mengurangi pengulangan, Windows menyediakan layanan SSH Agent.
SSH Agent berfungsi menyimpan kunci yang sudah dibuka selama sesi tertentu. Dengan begitu, pengguna tidak harus memasukkan passphrase setiap kali menjalankan perintah SSH.
Buka PowerShell dengan hak Administrator, kemudian jalankan:
Set-Service -Name ssh-agent -StartupType Automatic
Start-Service ssh-agent
Setelah layanan berjalan, buka PowerShell biasa dan tambahkan private key:
ssh-add "$env:USERPROFILE\.ssh\id_ed25519"
Masukkan passphrase ketika diminta. Selanjutnya, periksa daftar kunci yang sudah dimuat: ssh-add -l
Jika fingerprint kunci muncul, SSH Agent sudah mengenali private key tersebut. Kamu dapat mencoba login kembali tanpa harus memasukkan passphrase setiap kali membuat koneksi selama kunci masih tersedia di agent.
Jika perintah ssh-add menampilkan kesalahan koneksi ke agent, pastikan layanan ssh-agent sudah berjalan. Kamu juga dapat menutup dan membuka kembali terminal setelah mengaktifkan layanan.
4. Mengatasi masalah ketika SSH Key gagal digunakan
Jika login masih meminta password atau menampilkan pesan Permission denied (publickey), jangan langsung membuat kunci baru. Periksa beberapa kemungkinan berikut karena masalah sering berasal dari lokasi file, username, atau izin direktori.
| Kendala | Penyebab yang mungkin | Solusi |
|---|---|---|
| Permission denied (publickey) | Public key tidak terpasang atau tidak cocok | Periksa authorized_keys |
| Connection timed out | IP, port, jaringan, atau firewall bermasalah | Periksa konektivitas dan port SSH |
| Identity file not accessible | Lokasi private key salah | Periksa path setelah opsi -i |
| Bad permissions | Izin direktori atau file terlalu terbuka | Atur izin dengan chmod |
| Server refused our key | Konfigurasi SSH atau jenis kunci tidak sesuai | Periksa log dan konfigurasi server |
| Host key verification failed | Sidik jari server berubah atau tidak cocok | Verifikasi fingerprint sebelum memperbarui data host |
Untuk memeriksa file public key di server, jalankan: cat ~/.ssh/authorized_keys
Pastikan baris public key yang dipasang sesuai dengan isi file .pub di Windows. Periksa juga apakah kamu memasangnya pada akun Linux yang benar.
Jika semua pengaturan terlihat benar tetapi login tetap gagal, administrator dapat memeriksa log autentikasi server. Pada Ubuntu dan Debian, salah satu perintah yang dapat digunakan adalah: sudo journalctl -u ssh -n 50 –no-pager
Pada distribusi tertentu, nama layanan atau lokasi log bisa berbeda. Informasi tersebut membantu menemukan penyebab autentikasi ditolak tanpa harus mengubah konfigurasi secara sembarangan.
5. Nonaktifkan login password jika memang diperlukan
Setelah SSH Key terbukti berhasil, administrator dapat mempertimbangkan menonaktifkan autentikasi password untuk mengurangi risiko serangan tebakan password. Namun, langkah ini hanya boleh dilakukan jika akses kunci sudah diuji dan tersedia jalur pemulihan.
Buka konfigurasi SSH server: sudo nano /etc/ssh/sshd_config
Pastikan pengaturan berikut sesuai kebutuhan:
PubkeyAuthentication yes
PasswordAuthentication no
Pada beberapa sistem, konfigurasi tambahan di direktori sshd_config.d dapat menimpa nilai dalam file utama. Periksa juga aturan konfigurasi yang diterapkan sebelum mengubah pengaturan.
Setelah selesai, validasi konfigurasi: sudo sshd -t
Jika tidak ada kesalahan, muat ulang layanan SSH. Pertahankan sesi SSH yang sedang aktif dan buka terminal Windows lain untuk menguji login baru sebelum menutup sesi lama.
Peringatan: Menonaktifkan password tanpa memastikan SSH Key berfungsi dapat membuat akses ke server terputus. Pastikan private key tersimpan aman, tersedia cadangan yang terlindungi, dan kamu memiliki akses console dari penyedia VPS jika terjadi kegagalan.
FAQ Seputar Cara Membuat SSH Key di Windows untuk Login ke Server Linux
1. Apakah SSH Key bisa dibuat di Windows 10 dan Windows 11?
Bisa. Windows 10 dan Windows 11 menyediakan dukungan OpenSSH Client sebagai fitur opsional yang dapat digunakan untuk membuat pasangan kunci.
Jika belum tersedia, pasang melalui menu Optional Features atau PowerShell Administrator. Setelah itu, perintah ssh-keygen dapat digunakan untuk membuat SSH Key.
2. Apakah login menggunakan SSH Key benar-benar tanpa password?
Login dapat dilakukan tanpa memasukkan password akun Linux setiap kali terhubung. Namun, jika private key dilindungi passphrase, pengguna tetap perlu membuka kunci tersebut menggunakan passphrase.
Untuk mengurangi pengulangan, kamu dapat menggunakan SSH Agent. Dengan begitu, passphrase tidak harus dimasukkan setiap kali membuat koneksi selama kunci masih dimuat di agent.
3. Apa perbedaan SSH Key Ed25519 dan RSA?
Ed25519 merupakan algoritma modern dengan ukuran kunci relatif kecil dan proses autentikasi yang efisien. Sementara itu, RSA memiliki kompatibilitas luas dengan sistem lama, tetapi membutuhkan ukuran kunci lebih besar untuk keamanan yang memadai.
Untuk server Linux modern, Ed25519 umumnya menjadi pilihan utama. RSA dapat digunakan apabila server tujuan belum mendukung algoritma Ed25519.
4. Apakah satu SSH Key bisa digunakan untuk beberapa server Linux?
Bisa. Satu pasangan SSH Key dapat dipasang pada beberapa server atau akun Linux selama administrator mengizinkannya. Namun, untuk pengelolaan server yang lebih aman, kamu dapat membuat kunci berbeda untuk setiap server atau kelompok pekerjaan. Cara ini memudahkan pencabutan akses apabila salah satu private key hilang atau diketahui pihak lain.
5. Apakah private key boleh disalin ke server Linux?
Tidak. Private key harus tetap disimpan secara rahasia di komputer Windows atau perangkat tepercaya yang digunakan untuk membuat koneksi.
File yang perlu disalin ke server adalah public key dengan ekstensi .pub. Jangan pernah mengirimkan file private key melalui email, aplikasi pesan, atau penyimpanan publik.
6. Mengapa SSH masih meminta password meskipun public key sudah dipasang?
Penyebabnya bisa berupa public key tidak terpasang pada akun yang benar, izin direktori .ssh salah, atau private key yang digunakan tidak sesuai.
Periksa file authorized_keys, lokasi private key, username, dan pengaturan PubkeyAuthentication. Gunakan perintah ssh -v untuk mengetahui bagian autentikasi yang mengalami masalah.
7. Apakah SSH Key bisa digunakan untuk login sebagai root?
Secara teknis bisa apabila konfigurasi server mengizinkan autentikasi SSH untuk akun root. Namun, login langsung sebagai root memiliki risiko keamanan lebih tinggi dan sebaiknya dibatasi.
Pilihan yang lebih aman adalah login menggunakan akun biasa yang memiliki hak sudo. Dengan begitu, perintah administratif tetap dapat dijalankan tanpa memberikan akses root secara langsung.
8. Bagaimana jika private key di Windows hilang?
Jika private key hilang, kamu tidak dapat menggunakan pasangan kunci tersebut untuk membuktikan identitas ke server. Kamu perlu membuat pasangan kunci baru dan memasang public key penggantinya melalui akses lain yang masih tersedia.
Jika masih memiliki akses melalui password atau console VPS, tambahkan public key baru ke authorized_keys. Setelah akses baru berhasil diuji, hapus public key lama yang tidak lagi digunakan.
Kesimpulan
Cara membuat SSH Key di Windows untuk login ke server Linux tanpa password dapat dilakukan menggunakan OpenSSH melalui PowerShell atau Command Prompt. Prosesnya dimulai dengan memeriksa OpenSSH, membuat pasangan kunci Ed25519, kemudian memasang public key pada file authorized_keys di server.
Setelah pemasangan selesai, pastikan izin direktori dan file sudah benar, lalu uji koneksi menggunakan perintah SSH. Jika muncul pesan autentikasi publickey berhasil, berarti Windows sudah dapat terhubung menggunakan SSH Key.
Untuk keamanan tambahan, lindungi private key dengan passphrase dan manfaatkan SSH Agent agar proses login lebih praktis. Jangan menonaktifkan autentikasi password sebelum memastikan metode SSH Key benar-benar berfungsi dan tersedia akses pemulihan ke server.