Apa yang harus dilakukan ketika otentikasi berbasis kunci tidak berfungsi setelah ssh-copy-id

Saya baru-baru ini menyediakan server pribadi virtual (VPS) Ubuntu di Vultr. Saya sendiri menyukai CentOS, tetapi tugas yang saya kerjakan merekomendasikan Ubuntu.

Untuk mengatur otentikasi berbasis kunci dari laptop saya ke server,

  • Saya membuat keypair SSH baru (bernama "ubuntu") di Mac saya menggunakan perintah: ssh-keygen -t rsa -b 4096
  • Saya kemudian menggunakan ssh-copy-idutilitas untuk menyalin kunci publik saya ke authorized_keysfile di VPS Vultr saya:ssh-copy-id -i .ssh/ubuntu [email protected]

Seperti yang saya harapkan, utilitas meminta kata sandi VPS saya untuk menyelesaikan transfer kunci publik. Setelah semua selesai, saya mencoba masuk ke VPS saya.

Seharusnya membiarkan saya lewat tanpa memerlukan kata sandi:

ssh -i .ssh/ubuntu [email protected]

Tapi saya terus dimintai kata sandi. ?

  • Saya memeriksa authorized_keysfile saya di VPS untuk memastikan kunci publik saya telah disalin dengan benar. Memeriksa. ??
  • Saya memastikan bahwa file itu hanya baca-tulis untuk saya sendiri dan tidak untuk orang lain. Memeriksa. ??
  • Saya memastikan bahwa opsi berikut diaktifkan di /etc/ssh/sshd_config: PubkeyAuthentication yesdan AuthorizedKeysFile .ssh/authorized_keys. Memeriksa. ??

Namun, saya terus dimintai kata sandi saat masuk dari laptop saya.

Setelah beberapa menit di StackOverflow, saya belajar tentang Direktori Rumah Terenkripsi, yang merupakan default di beberapa lingkungan, termasuk Ubuntu.

Direktori rumah terenkripsi tidak didekripsi sampai login awal berhasil. Namun, authorized_keysfile saya disimpan di direktori home saya.

Oleh karena itu, percobaan koneksi pertama saya akan membutuhkan kata sandi. Koneksi selanjutnya akan berhasil tanpa kata sandi, karena layanan SSH kemudian akan dapat membaca authorized_keysfile saya di direktori beranda saya yang telah didekripsi.

Untuk menyiasati ini, saya membuat direktori yang dinamai nama pengguna saya di aritdevluar direktori home saya (saya memilih /etc/), dan memberinya izin penuh untuk diri saya sendiri, tetapi izin baca-eksekusi untuk orang lain. Selanjutnya, saya memindahkan authorized_keysfile saya ke /etc/aritdev/. Kemudian, saya memperbarui AuthorizedKeysFileparameter di /etc/ssh/sshd_config:

AuthorizedKeysFile /etc/%u/authorized_keys

Akhirnya, saya memulai ulang layanan SSH. Untuk mengujinya, saya keluar dari VPS saya, lalu mencoba masuk kembali. BOOM - berhasil! ??

Masalah apa yang terkait dengan otentikasi server yang pernah Anda alami? Bagaimana Anda menyelesaikannya? Silakan bagikan di bawah ini! ??