Perintah ssh-keygen Linux: buat kunci SSH dan periksa sidik jari

Perintah ssh-keygen membuat pasangan kunci privat dan publik untuk autentikasi Secure Shell (SSH), serta menampilkan sidik jari kunci. Simpan kunci privat pada komputer Anda dan daftarkan hanya kunci publik pada akun server yang dituju.

Dalam autentikasi kunci publik, klien menggunakan kunci privat untuk menandatangani data autentikasi dan server memeriksanya dengan kunci publik yang terdaftar. Frasa sandi atau passphrase melindungi berkas kunci privat; fungsinya berbeda dari kata sandi akun server.

Sintaks dan persiapan

ssh-keygen [opsi]

opsi adalah penanda sintaks, bukan argumen literal. Periksa ssh -V dan man ssh-keygen untuk versi OpenSSH serta pilihan yang tersedia. Contoh berikut memilih Ed25519 secara eksplisit; penerimaan jenis kunci pada server tetap mengikuti kemampuan dan kebijakan lingkungan Anda.

Pastikan direktori ~/.ssh pada akun lokal tersedia, lalu periksa apakah nama kunci yang akan dipakai sudah ada. Tanda ~ berarti direktori pribadi pengguna yang menjalankan perintah. Gunakan nama baru untuk tujuan yang berbeda agar tidak mengganti kunci lama tanpa sengaja.

Membuat pasangan kunci Ed25519

ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_work -C 'user@example.com'

-t memilih jenis kunci, -f menentukan jalur berkas, dan -C memberi komentar pengenal. user@example.com hanyalah komentar contoh: ganti dengan label yang membantu mengenali kunci. Komentar tidak membuat akun server atau membuktikan kepemilikan alamat email tersebut.

Jika jalur belum dipakai, hasil yang diharapkan adalah dua berkas:

  • ~/.ssh/id_ed25519_work: kunci privat yang harus dilindungi.
  • ~/.ssh/id_ed25519_work.pub: kunci publik yang dapat didaftarkan pada server.

Perintah meminta frasa sandi dan konfirmasinya. Pilih frasa sandi yang sulit ditebak dan simpan dengan aman; masukan biasanya tidak ditampilkan saat diketik. Jika muncul pertanyaan untuk menimpa berkas, berhenti dan periksa jalurnya sebelum menyetujui. Frasa sandi melindungi kunci privat, sedangkan nama berkas baru membantu menghindari penimpaan; keduanya bukan mekanisme yang sama.

Pembuatan kunci saja belum mengaktifkan login. Kunci publik masih perlu didaftarkan pada akun yang benar melalui prosedur server. Jika Anda memakai nama kunci khusus seperti contoh, pilih kunci itu saat menghubungkan klien, misalnya melalui opsi -i atau konfigurasi host. Panduan ssh untuk login dan pemilihan identitas menjelaskan konteks koneksinya.

Memeriksa sidik jari kunci publik

ssh-keygen -lf ~/.ssh/id_ed25519_work.pub

Sidik jari adalah nilai ringkas yang membantu membandingkan identitas kunci. Cocokkan sidik jari kunci yang dibuat dengan kunci yang hendak didaftarkan, terutama jika Anda mengelola beberapa akun atau perangkat. Jangan membandingkan komentar saja karena dua kunci berbeda dapat diberi komentar yang sama.

Gunakan berkas .pub yang berkaitan dengan kunci privat yang dipilih. Akhiran .pub adalah kebiasaan penamaan; nama berkas saja tidak menjamin isinya benar. Jika alat tidak dapat membaca berkas sebagai kunci, periksa berkas dan jalurnya alih-alih mengganti ekstensinya untuk memaksa proses.

Menampilkan kembali kunci publik dari kunci privat

ssh-keygen -y -f ~/.ssh/id_ed25519_work

Opsi -y membaca kunci privat dan menuliskan kunci publik ke keluaran standar. Gunakan ketika berkas publik hilang tetapi kunci privat masih tersedia. Jika kunci privat dilindungi frasa sandi, masukkan frasa sandinya saat diminta.

Perintah ini menampilkan kunci publik; tidak otomatis membuat ulang berkas .pub. Jika keluaran akan disimpan, pilih berkas tujuan yang tepat dan periksa isinya sebelum mendaftarkannya. Jangan mengarahkan keluaran ke berkas kunci privat sumber karena berkas sumber dapat terpotong oleh pengalihan shell sebelum program membacanya.

Ini bukan pemulihan kunci privat dari kunci publik. Jika kunci privat hilang dan tidak ada salinan cadangan yang dapat dipakai, buat pasangan baru dan atur ulang pendaftaran kunci publik melalui jalur akses yang masih tersedia.

Membaca format keluaran sidik jari

ssh-keygen -lf ~/.ssh/id_ed25519_work.pub

Berikut ilustrasi format dari sumber. Bagian SHA256:... sengaja tidak berisi sidik jari lengkap dan tidak boleh digunakan sebagai nilai pembanding:

256 SHA256:... user@example.com (ED25519)

256 adalah ukuran kunci yang dilaporkan, SHA256:... adalah sidik jari, user@example.com adalah komentar, dan ED25519 adalah jenis kunci. Angka ukuran tidak dapat dipakai sendiri untuk membandingkan tingkat keamanan berbagai algoritme. Sidik jari kunci yang Anda buat akan berbeda dari contoh dan dari kunci lain.

Bedakan sidik jari kunci pengguna ini dari sidik jari kunci host server saat pertama kali terhubung. Yang satu mengidentifikasi kunci autentikasi akun Anda; yang lain membantu memeriksa identitas server. Memastikan kunci pengguna benar tidak menggantikan pemeriksaan kunci host.

Opsi penting

Opsi Fungsi
-t jenis Memilih jenis kunci, misalnya ed25519.
-f berkas Memilih berkas yang disimpan atau dibaca sesuai operasi.
-C komentar Memberikan komentar pengenal.
-l Menampilkan sidik jari kunci.
-y Menampilkan kunci publik dari kunci privat.
-p Mengubah frasa sandi berkas kunci privat yang sudah ada.

Opsi -p mengubah perlindungan berkas kunci yang ada, bukan membuat identitas baru seperti operasi pembuatan pasangan kunci. Periksa jalur yang dipilih serta cadangan sebelum memodifikasi berkas. Detail pilihan dan format tersedia dalam manual resmi ssh-keygen OpenSSH.

Melindungi kunci dan menjaga akses

Kirim hanya kunci publik kepada pihak yang memasang akses. Jangan mengirim kunci privat melalui email, pesan, atau formulir web. Batasi akses berkas lokal dan lindungi cadangan kunci dengan standar yang sama; cadangan yang terbuka dapat membatalkan perlindungan pada komputer utama.

Mengganti kunci privat lama di jalur yang sama tidak otomatis mengganti kunci publik yang terdaftar pada server. Akibatnya, login dengan identitas yang diharapkan dapat gagal. Untuk penggantian terencana, daftarkan kunci publik baru dan uji aksesnya sebelum menghentikan penggunaan kunci lama sesuai prosedur lingkungan.

Jika frasa sandi hilang, ssh-keygen tidak dapat memulihkannya. Tanpa cara lain yang masih dapat menggunakan kunci itu, siapkan pasangan baru dan ganti pendaftaran publik melalui akun atau prosedur pemulihan yang sah. Jangan menghapus sesi atau jalur akses yang masih berfungsi sebelum memastikan penggantinya tersedia.

FAQ

Berkas mana yang harus didaftarkan pada server?

Daftarkan kunci publik, pada contoh berupa id_ed25519_work.pub. Kunci privat id_ed25519_work tetap disimpan pada klien dan tidak dikirim sebagai berkas pendaftaran.

Apakah -y menghasilkan pasangan kunci baru?

Tidak. -y menampilkan kunci publik yang berasal dari kunci privat yang dibaca. Jika perlu identitas baru, gunakan operasi pembuatan kunci dengan nama berkas baru.