Autentikasi Kunci Publik dan Penerusan Agen
Pahami authorized_keys, kunci Ed25519 dibandingkan dengan RSA, serta implikasi keamanan penerusan agen SSH.
Autentikasi Kunci Publik dan Penerusan Agen adalah pelajaran Cryptology Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cryptology Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cryptology Academy mencakup 4 pelajaran total.
Format Berkas authorized_keys
Autentikasi kunci publik SSH bergantung pada berkas authorized_keys, yang biasanya berada di ~/.ssh/authorized_keys pada server. Setiap baris berisi kunci publik dengan format: algorithm base64-key comment. Server memeriksa apakah klien dapat membuktikan bahwa ia memiliki kunci privat yang sesuai dengan menandatangani tantangan.
Membuat Kunci SSH dengan ssh-keygen
Perintah ssh-keygen membuat pasangan kunci untuk autentikasi. Menjalankan ssh-keygen -t ed25519 akan membuat pasangan kunci Ed25519 modern. Anda dapat menentukan komentar dengan -C sebagai identifikasi, misalnya alamat surel Anda. Secara bawaan, alat ini menyimpan kunci privat (id_ed25519) dan kunci publik (id_ed25519.pub) di ~/.ssh.
Perbandingan Jenis Kunci: RSA, ECDSA, Ed25519
Kunci RSA 4096 bit sangat kompatibel dengan sistem lama, tetapi lebih lambat saat menandatangani. ECDSA pada NIST P-256 lebih cepat dan menghasilkan tanda tangan yang lebih kecil, tetapi sebagian ahli kriptografi mempertanyakan pemilihan parameter kurva NIST. Ed25519 yang berbasis Curve25519 merupakan praktik terbaik saat ini: kunci dan tanda tangan berukuran kecil, cepat, tidak memiliki kelemahan yang diketahui, dan tersedia di semua implementasi SSH modern.
Kunci Privat yang Dilindungi Frasa Sandi
Berkas kunci privat harus dilindungi dengan frasa sandi. ssh-keygen mengenkripsi kunci privat menggunakan kunci yang diturunkan dari frasa sandi (bcrypt untuk kunci modern), sehingga penyerang yang mencuri berkas tersebut tidak dapat menggunakannya tanpa frasa sandi. Tanpa frasa sandi, siapa pun yang memiliki akses ke berkas tersebut dapat melakukan autentikasi sebagai Anda ke server mana pun yang menyimpan kunci publik pasangannya.
ssh-agent untuk Pengelolaan Kunci
Daemon ssh-agent menyimpan kunci privat yang telah didekripsi di memori selama sesi masuk. Anda memuat kunci dengan ssh-add ~/.ssh/id_ed25519, yang meminta frasa sandi satu kali. Koneksi SSH berikutnya meminta agen menandatangani tantangan tanpa perlu memasukkan kembali frasa sandi, sehingga menggabungkan keamanan dan kemudahan.
Cara ssh-agent Menandatangani Tantangan
Saat server SSH mengirim tantangan autentikasi, klien SSH mendelegasikan proses penandatanganan kepada ssh-agent melalui soket Unix. Agen melakukan penandatanganan kriptografis menggunakan kunci privat yang tersimpan di memori, lalu hanya mengembalikan tanda tangannya. Byte kunci privat tidak pernah meninggalkan proses agen, bahkan untuk sampai ke klien SSH itu sendiri.
Penerusan Agen: Kemampuan dan Risiko
Penerusan agen (ForwardAgent yes atau ssh -A) memungkinkan sesi SSH jarak jauh menggunakan agen lokal Anda untuk autentikasi lanjutan. Hal ini berguna untuk melewati host perantara tanpa menyalin kunci privat ke host perantara tersebut. Namun, jika host perantara disusupi, pengguna root di sana dapat mengakses soket agen Anda dan melakukan autentikasi sebagai Anda ke server mana pun.
ProxyJump dibandingkan ForwardAgent untuk Host Perantara
ProxyJump (ssh -J bastion target) merupakan alternatif yang lebih aman daripada ForwardAgent untuk mengakses host perantara. ProxyJump membuat terowongan TCP melalui host perantara tanpa mengekspos soket agen Anda di sana. Server tujuan menerima koneksi langsung dari klien lokal Anda, sedangkan host perantara hanya meneruskan byte TCP terenkripsi tanpa kemampuan menggunakan kredensial Anda.
Autentikasi Sertifikat SSH
SSH mendukung autentikasi berbasis sertifikat, di mana Otoritas Sertifikat (CA) menandatangani kunci publik host dan pengguna. Alih-alih mendistribusikan kunci publik satu per satu ke setiap server, Anda mengonfigurasi server agar mempercayai CA Anda. Sertifikat pengguna yang ditandatangani memberikan akses ke semua server yang mempercayai CA tersebut, dengan masa berlaku dan pembatasan identitas opsional yang disematkan dalam sertifikat.
ssh-keyscan untuk Pengumpulan Kunci Secara Massal
Alat ssh-keyscan terhubung ke satu atau beberapa host dan mengambil kunci publik host mereka tanpa autentikasi. Hal ini berguna untuk mengotomatiskan pengisian berkas known_hosts dalam skrip penerapan. Keluaran dapat dialirkan langsung ke berkas known_hosts: ssh-keyscan -H example.com >> ~/.ssh/known_hosts.
Ringkasan Alur Autentikasi Kunci
Autentikasi kunci publik: klien mengirim kunci publik, server memeriksa authorized_keys, server mengirim tantangan yang ditandatangani dengan pengenal sesi, klien melalui agen menandatanganinya dengan kunci privat, lalu server memverifikasi tanda tangan menggunakan kunci publik yang tersimpan. Jika valid, autentikasi berhasil tanpa mengirimkan kredensial rahasia apa pun.
Pemilihan Jenis Kunci SSH
Jenis kunci SSH apa yang menjadi praktik terbaik saat ini untuk penerapan baru karena kecepatannya, ukuran kuncinya yang kecil, dan sifat keamanannya yang kuat?
Ikhtisar Autentikasi Kunci Publik
Poin penting: simpan kunci publik di authorized_keys, lindungi kunci privat dengan frasa sandi, gunakan ssh-agent untuk menyimpan kunci yang telah didekripsi di memori, utamakan jenis kunci Ed25519, gunakan ProxyJump alih-alih ForwardAgent untuk akses host perantara agar soket agen tidak terekspos, dan pertimbangkan sertifikat SSH untuk pengelolaan akses yang dapat diskalakan.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Autentikasi Kunci Publik dan Penerusan Agen” gratis?
Ya — teks lengkap “Autentikasi Kunci Publik dan Penerusan Agen” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cryptology Academy, upgrade ke CoddyKit PRO. Kursus Cryptology Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Autentikasi Kunci Publik dan Penerusan Agen”?
Pahami authorized_keys, kunci Ed25519 dibandingkan dengan RSA, serta implikasi keamanan penerusan agen SSH. Kamu berlatih Cryptology Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Cryptology Academy?
Tidak diperlukan pengalaman sebelumnya. Cryptology Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Autentikasi Kunci Publik dan Penerusan Agen” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Cryptology Academy ini?
Ya. Setiap pelajaran Cryptology Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Jabat Tangan SSH dan Autentikasi Kunci Host
- Autentikasi Kunci Publik dan Penerusan Agen
- Teknik Penerowongan SSH dan Penerusan Port
- Penguatan SSH dan Praktik Terbaik Audit