Berikut adalah catatan singkat tentang konfigurasi login tanpa kata sandi antara 2 sistem Linux. Proses pada dasarnya melibatkan pembuatan kunci otentikasi publik dan menambahkannya ke file host jarak jauh ~/.ssh/authorized_keys.
Buat kunci autentikasi
Jika file kunci otentikasi SSH tidak ada, buat file dengan menjalankan ssh-keygen memerintah. Saat dimintai frasa sandi, gunakan frasa sandi kosong jika diperlukan login tanpa sandi sepenuhnya:
# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/user/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user/.ssh/id_rsa. Your public key has been saved in /home/user/.ssh/id_rsa.pub. The key fingerprint is: 1e:b2:f4:89:5a:7f:2d:a5:a5:4d:6d:66:2c:82:d8:18 root@remote-host
Salin kunci publik ke host jarak jauh
Gunakan ssh-copy-id perintah untuk menginstal setengah publik dari kunci otentikasi yang baru dibuat ke direktori home pengguna tertentu pada host jarak jauh. Perintah ssh-copy-id kemudian akan secara otomatis menambahkan informasi identitas ke dalam ~/.ssh/authorized_keys file untuk pengguna tertentu pada host jarak jauh (membuat ~/.ssh dan~/.ssh/authorized_keys jika perlu).
# ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote-host user@remote-hosts's password:
Atau jika server tidak diinstal dengan openssh-clients (paket yang menyediakan utilitas perintah ssh-copy-id), Anda dapat menyalin kunci otentikasi dengan perintah:
# cat ~/.ssh/id_rsa.pub | ssh user@remote-host "cat >> ~/.ssh/authorized_keys"
Jika semuanya dikonfigurasi dengan benar, Anda seharusnya dapat masuk ke host jarak jauh tanpa kata sandi.
Pemecahan Masalah
Periksa izin yang benar
Penyebab paling umum masalah dengan membuat otentikasi ssh berbasis kunci berfungsi adalah izin file di server ssh jarak jauh
Jika langkah-langkah di atas diikuti dan ssh'ing ke pengguna yang sesuai masih meminta kata sandi, periksa izin pada file pengguna lokal dan jarak jauh . Izin direktori harus persis seperti yang ditunjukkan di bawah ini. Contoh yang ditampilkan di sini adalah untuk pengguna “oracle”
drwx------. 25 oracle oinstall 4096 Aug 21 11:01 /home/oracle/ drwx------. 2 oracle oinstall 4096 Aug 17 13:13 /home/oracle/.ssh -rw-------. 1 oracle oinstall 420 Aug 17 13:13 /home/oracle/.ssh/authorized_keys
Jika izin tidak seperti yang ditunjukkan di atas, atur dengan benar :
# chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh/
Mulai ulang layanan sshd agar perubahan diterapkan :
# service sshd restart
menonaktifkan SElinux
SELinux juga berpotensi mencegah sshd mengakses direktori ~/.ssh di server. Masalah ini dapat dikesampingkan (atau diselesaikan) dengan menjalankan restorecon sebagai berikut pada direktori ~/.ssh pengguna jarak jauh:
# restorecon -Rv ~/.ssh