Di mana SSH Keys disimpan di Linux — Dan bagaimana cara mengelolanya dengan aman
SSH (Secure Shell) adalah alat dasar dalam ekosistem Linux, digunakan untuk akses jarak jauh, transfer file yang aman, otomatisasi, dan manajemen server. Sementara sebagian besar pengguna berinteraksi dengan SSH melalui perintah ssh, di balik layar SSH mengandalkan pasangan kunci publik dan privat untuk otentikasi — terutama di lingkungan di mana login tanpa kata sandi, otomatisasi, dan praktik DevOps sangat penting.
Lokasi Penyimpanan Kunci SSH Default
Tempat paling umum kunci SSH disimpan adalah:
Ini merujuk pada direktori .ssh di folder home pengguna, misalnya:
File umum di direktori ini:
| File | Tujuan |
|---|---|
| id_rsa | Kunci privat default (RSA) |
| id_rsa.pub | Kunci publik yang cocok |
| id_ecdsa, id_ed25519 | Kunci privat lainnya (ECDSA, Ed25519) |
| id_*.pub | Kunci publik yang sesuai |
| authorized_keys | Menyimpan kunci publik yang diizinkan untuk terhubung |
| known_hosts | Menyimpan sidik jari server (verifikasi kunci host) |
| config | Konfigurasi klien SSH spesifik pengguna |
Jika Anda menghasilkan kunci dengan ssh-keygen, mereka disimpan di sini secara default kecuali jalur ditentukan.
Lokasi Kunci SSH Sistem-Wide
Kunci Host SSH Server (sshd)
Kunci sistem-wide yang digunakan oleh daemon SSH (sisi server):
File-file umum:
| File | Tujuan |
|---|---|
| ssh_host_rsa_key | Kunci privat host (RSA) |
| ssh_host_rsa_key.pub | Kunci publik host |
| ssh_host_ecdsa_key | Kunci privat host ECDSA |
| ssh_host_ed25519_key | Kunci privat host Ed25519 |
Kunci-kunci ini digunakan untuk mengidentifikasi server kepada klien, bukan untuk mengautentikasi pengguna.
Daemon SSH (sshd) menyajikan kunci publik host selama koneksi; klien membandingkannya dengan ~/.ssh/known_hosts.
Lokasi Kunci Kustom
Anda dapat menghasilkan atau menggunakan kunci SSH dari lokasi mana saja, tetapi Anda harus menentukan jalurnya:
Anda juga dapat mengonfigurasi beberapa kunci melalui ~/.ssh/config:
Di Mana Kunci Digunakan?
Outbound (Sisi Klien)
Klien SSH mencari kunci privat di ~/.ssh/ secara default. Kunci ini digunakan untuk memulai otentikasi saat terhubung ke server jarak jauh.
ssh, scp, rsync melalui SSH, git (ketika menggunakan remote SSH)
📌 Inbound (Sisi Server)
Server mencari kunci publik di:
File ini mencantumkan kunci publik yang diizinkan untuk login ke akun pengguna tertentu tersebut.
Jika user_a mencoba SSH ke server sebagai user_b, kunci publik mereka harus ada di ~user_b/.ssh/authorized_keys.
Izin — Kritis untuk Keamanan
Izin yang benar:
Izin yang salah dapat menyebabkan SSH mengabaikan kunci Anda atau menolak login sepenuhnya.
Mengelola Kunci SSH dengan Aman
Gunakan frasa sandi saat menghasilkan kunci privat:
Gunakan ssh-agent untuk menyimpan kunci yang tidak terkunci di memori:
- Putar kunci secara teratur
- Hapus kunci yang tidak digunakan atau yatim dari “authorized_keys”
- Gunakan kunci terpisah per host/proyek
- Hindari menggunakan kunci root di berbagai lingkungan
Audit dan Debugging
Untuk melihat kunci apa yang digunakan selama koneksi SSH:
Ini mencetak log yang rinci, termasuk file identitas mana yang dicoba.
Untuk mencantumkan kunci yang dimuat di agen Anda saat ini:
Untuk menghapus kunci:
Kesimpulan
Memahami di mana kunci SSH disimpan di Linux — dan bagaimana mengelolanya dengan aman — sangat penting bagi administrator sistem, pengembang, insinyur DevOps, dan siapa pun yang bekerja di lingkungan multi-host atau multi-user.
Dengan mengetahui perbedaan antara kunci pengguna, kunci host, dan kunci yang diizinkan, Anda dapat:
- Memecahkan masalah otentikasi
- Menyiapkan alur kerja otomatis yang aman
- Mengelola akses di seluruh tim dan sistem
Di sistem produksi atau platform cloud (misalnya, VPS atau server khusus), pengelolaan kunci SSH yang salah dapat menyebabkan kerentanan serius. Pastikan Anda mengikuti praktik terbaik dan melakukan audit akses secara teratur.
