Langsung ke konten
Diskon hingga 50% untuk hosting cPanel, khusus pelanggan baru
computing.id

Cara Setting SSH Public Key di Windows dan Linux (Panduan Lengkap)

6 menit baca
promo hosting cpanel

SSH public key adalah metode autentikasi yang jauh lebih aman dan praktis dibandingkan login SSH dengan password biasa. Dengan metode ini, Anda tidak perlu mengetik password setiap kali terhubung ke server, sekaligus menutup celah serangan brute force. Artikel ini membahas cara setting ini secara lengkap, mulai dari generate key di Windows dan Linux, menyalin public key ke server, hingga mengatur konfigurasi SSHD agar login berjalan mulus.

Apa Itu SSH Public Key dan Mengapa Lebih Aman?

Metode ini bekerja dengan prinsip kriptografi asimetris, yaitu sepasang kunci yang saling berpasangan: private key dan public key. Private key disimpan rahasia di komputer Anda, sedangkan public key diletakkan di server yang ingin diakses. Saat login, server mengirim tantangan terenkripsi yang hanya bisa dijawab oleh pemilik private key yang sah. Jika jawabannya benar, akses diberikan tanpa perlu memasukkan password sama sekali.

Diagram cara kerja autentikasi SSH public key antara client dan server

Dibandingkan password, autentikasi metode ini memiliki beberapa keunggulan. Pertama, jauh lebih tahan terhadap serangan brute force karena private key praktis mustahil ditebak. Kedua, lebih praktis untuk otomatisasi seperti cron job, deployment, atau sinkronisasi file dengan rsync. Ketiga, satu public key bisa dipakai untuk beberapa server sekaligus tanpa perlu mengingat banyak password. Jika Anda belum familiar dengan konsep dasarnya, silakan baca juga Tutorial Login SSH tanpa Password dengan SSH Key sebagai pengantar.

Persiapan Sebelum Setting SSH Public Key

Sebelum mulai setting SSH public key, pastikan beberapa hal berikut sudah siap:

  • Akses ke server tujuan, baik lewat password sementara maupun akses root/sudo
  • Alamat IP atau hostname server beserta port SSH yang digunakan
  • Terminal: PowerShell/Command Prompt di Windows, atau Terminal di Linux/macOS
  • Hak akses untuk mengedit file konfigurasi SSHD di server jika diperlukan

Cara Generate SSH Public Key di Windows

Windows 10 versi 1809 ke atas dan Windows 11 sudah menyertakan OpenSSH Client secara bawaan, sehingga Anda tidak perlu software tambahan untuk generate SSH public key.

Menggunakan OpenSSH Client Bawaan Windows

  1. Buka PowerShell (tidak perlu dijalankan sebagai Administrator)
  2. Jalankan perintah ssh-keygen -t ed25519 -C “[email protected]” (gunakan -t rsa -b 4096 jika server tujuan belum mendukung ed25519)
  3. Tekan Enter untuk menyimpan di lokasi default, yaitu C:\Users\NamaAnda\.ssh\id_ed25519
  4. Masukkan passphrase jika ingin lapisan keamanan tambahan, atau kosongkan dengan menekan Enter
  5. Dua file akan terbentuk: id_ed25519 (private key, jangan dibagikan) dan id_ed25519.pub (public key yang akan disalin ke server)

Jika perintah ssh-keygen tidak dikenali, aktifkan dulu lewat Settings > Apps > Optional Features > Add a feature, lalu cari dan pasang OpenSSH Client. Dokumentasi resminya bisa dilihat di panduan OpenSSH Key Management dari Microsoft.

Menggunakan PuTTYgen (Alternatif)

Jika Anda lebih terbiasa memakai PuTTY untuk SSH, generate SSH public key juga bisa lewat PuTTYgen:

  1. Unduh dan buka PuTTYgen (satu paket dengan installer PuTTY)
  2. Pilih tipe key EdDSA atau RSA, lalu klik Generate dan gerakkan mouse secara acak di area yang diminta
  3. Beri passphrase, lalu klik Save private key untuk menyimpan file .ppk
  4. Salin teks public key yang tampil di kotak atas jendela PuTTYgen, karena teks inilah yang akan ditempelkan ke server

Cara Generate SSH Public Key di Linux dan macOS

Di Linux dan macOS, OpenSSH sudah terpasang secara default sehingga Anda bisa langsung generate SSH public key lewat terminal:

 ssh-keygen -t ed25519 -C "[email protected]"

Tekan Enter untuk memakai lokasi default (~/.ssh/id_ed25519), lalu isi passphrase sesuai kebutuhan. File dengan akhiran .pub adalah public key yang akan dikirim ke server, sedangkan file tanpa akhiran adalah private key yang wajib dijaga kerahasiaannya.

Alur langkah setting SSH public key di Windows dan Linux: generate key, salin ke server, atur permission, login tanpa password

Cara Mengunggah SSH Public Key ke Server

Setelah key pair siap, langkah berikutnya adalah mengunggah SSH public key ke server agar bisa dipakai untuk login.

Via ssh-copy-id (Linux/macOS)

 ssh-copy-id -i ~/.ssh/id_ed25519.pub user@alamat-server -p port_ssh

Perintah ini otomatis menambahkan isi public key ke file ~/.ssh/authorized_keys milik user tujuan di server.

Secara Manual Lewat Terminal

Jika ssh-copy-id tidak tersedia, salin public key secara manual dengan perintah berikut dari komputer client:

 cat ~/.ssh/id_ed25519.pub | ssh user@alamat-server "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

Dari Windows ke Server Linux

Windows OpenSSH versi terbaru juga mendukung ssh-copy-id. Jika belum tersedia, tampilkan isi public key dengan perintah berikut di PowerShell:

 Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub

Salin hasilnya, lalu login ke server memakai password seperti biasa dan tempelkan ke dalam file ~/.ssh/authorized_keys, atau gunakan File Manager di panel hosting jika Anda tidak nyaman lewat terminal.

Mengatur Permission dan Konfigurasi SSHD

Permission yang salah adalah penyebab paling umum SSH public key gagal berfungsi meskipun sudah diunggah dengan benar. Pastikan hal-hal berikut di sisi server:

  • Folder ~/.ssh memiliki permission 700
  • File ~/.ssh/authorized_keys memiliki permission 600
  • Folder home dan file .ssh dimiliki oleh user yang bersangkutan, bukan root

Selanjutnya, buka file konfigurasi /etc/ssh/sshd_config dan pastikan baris PubkeyAuthentication yes tidak dalam kondisi dinonaktifkan (di-comment dengan tanda #). Setelah mengubah konfigurasi, restart layanan SSH agar perubahan diterapkan:

 sudo systemctl restart sshd

Menonaktifkan Login Password agar Lebih Aman

Setelah SSH public key terbukti berhasil digunakan untuk login, sebaiknya nonaktifkan autentikasi password di server agar tidak lagi rentan terhadap serangan brute force. Pastikan Anda sudah benar-benar bisa login memakai key sebelum menonaktifkan password, supaya tidak terkunci dari server sendiri. Jika hanya ingin menonaktifkan password untuk user tertentu saja, langkahnya sudah dibahas di Tutorial Disable Password SSH untuk User Tertentu.

Troubleshooting Masalah Umum SSH Public Key

  • Permission denied (publickey): periksa kembali permission folder ~/.ssh dan file authorized_keys, serta pastikan SELinux atau modul keamanan lain tidak memblokir
  • Masih diminta memasukkan password: pastikan PubkeyAuthentication yes aktif di sshd_config, lalu restart layanan SSH
  • Perintah ssh-copy-id tidak dikenali di Windows: gunakan cara manual dengan menyalin isi file .pub dan menempelkannya ke authorized_keys
  • Lupa passphrase private key: tidak ada cara memulihkannya, sehingga Anda perlu generate SSH key pair baru dan memperbarui public key di server

Untuk mengamankan server lebih jauh, misalnya memblokir percobaan login berulang secara otomatis, lihat juga panduan Konfigurasi Otentikasi SSH Key dan Proteksi Fail2ban.

Kesimpulan

Setting SSH public key di Windows maupun Linux pada dasarnya mengikuti alur yang sama: generate key pair, salin public key ke server, atur permission dengan benar, lalu nonaktifkan login password jika diperlukan. Dengan SSH public key, akses ke server menjadi lebih cepat sekaligus jauh lebih aman dibandingkan hanya mengandalkan password. Jika Anda membutuhkan VPS dengan akses root penuh untuk mempraktikkan tutorial ini, Linux VPS Computing ID bisa jadi pilihan yang siap pakai hanya dalam hitungan menit.

promo vps
Bagikan artikel ini

Baca juga

Artikel terkait

cPanel

Cara Pasang SSL di Apache

Belajar cara pasang SSL di Apache adalah langkah penting untuk mengamankan website dan meningkatkan kepercayaan pengunjung. Dengan SSL, koneksi antara server dan browser dienkripsi sehingga data…

Praktik langsung

Butuh server untuk mencoba tutorialnya?

Cloud VPS Linux & Windows aktif otomatis setelah pembayaran, dengan full root access dan tim support yang siap membantu 24/7.