Gunakan perintah ssh-keygen untuk menghasilkan pasangan kunci otentikasi publik/pribadi. Kunci otentikasi memungkinkan pengguna untuk terhubung ke sistem jarak jauh tanpa memberikan kata sandi. Kunci harus dibuat untuk setiap pengguna secara terpisah. Jika Anda membuat pasangan kunci sebagai pengguna root, hanya root yang dapat menggunakan kunci tersebut.
Contoh berikut membuat bagian publik dan pribadi dari kunci RSA:
# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:z6zTVQ/PJYt2o96DrVYClmfcqBG8Pdb8nzqY2m2HjeY root@geeklab The key's randomart image is: +---[RSA 2048]----+ | . | | o | | * = | | * O B .| | S. B + O.| | +. = = =| | .+ooB+.o| | ..oo=Bo+.| | .o.+*E=. | +----[SHA256]-----+
Gunakan opsi –t untuk menentukan jenis kunci yang akan dibuat. Nilai yang mungkin adalah “rsa1 ” untuk protokol versi 1, dan “dsa “, “ecdsa “, atau “rsa ” untuk protokol versi 2.
Anda memiliki opsi untuk menentukan frasa sandi untuk mengenkripsi bagian pribadi kunci. Jika Anda mengenkripsi kunci pribadi Anda, Anda harus memberikan frasa sandi setiap kali Anda menggunakan kunci tersebut. Ini mencegah penyerang, yang memiliki akses ke kunci pribadi Anda dan dapat menyamar sebagai Anda dan mengakses semua komputer yang Anda akses, untuk dapat melakukannya. Penyerang masih perlu memberikan frasa sandi.
Perintah ssh-key dalam contoh menghasilkan dua kunci di direktori ~/.ssh:
$ ls ~/.ssh id_rsa id_rsa.pub
Untuk masuk ke, atau menyalin file ke, sistem jarak jauh tanpa memberikan kata sandi, salin kunci publik (~/.ssh/id_rsa.pub dalam contoh ini) ke ~/.ssh/authorized_keys pada sistem jarak jauh. Setel ~/.ssh jarak jauh izin direktori ke 700 . Anda kemudian dapat menggunakan alat ssh atau scp untuk mengakses sistem jarak jauh tanpa memberikan kata sandi.
Untuk mengizinkan beberapa koneksi, tambahkan kunci publik ke file otor_keys pada sistem jarak jauh alih-alih menyalinnya. Contoh berikut menambahkan kunci publik:
$ cat id_rsa.pub >> authorized_keys
Anda dapat meningkatkan keamanan sistem lebih jauh dengan menonaktifkan otentikasi kata sandi standar, dan menerapkan otentikasi berbasis kunci. Untuk melakukannya, setel opsi PasswordAuthentication ke no di /etc/ssh/sshd_config file konfigurasi sebagai berikut:
# vi /etc/ssh/sshd_config PasswordAuthentication no
Ini melarang pengguna yang kuncinya tidak ada di authorized_keys file pengguna tertentu di server untuk terhubung melalui ssh. Sambungan ditolak dan pesan berikut muncul:
$ ssh host01 Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
Menyetel opsi PasswordAuthentication ke ya, yang merupakan default, memungkinkan pengguna menggunakan kata sandi untuk otentikasi.