Saya ingin sshd memverifikasi kunci publik pengguna dan kemudian meminta kata sandi mereka, bukan hanya satu atau yang lain. Apakah ini mungkin?
Saya ingin sshd memverifikasi kunci publik pengguna dan kemudian meminta kata sandi mereka, bukan hanya satu atau yang lain. Apakah ini mungkin?
Jawaban:
Tidak sekarang. Tetapi ada beberapa tambalan melayang yang seharusnya menambahkan ini.
Ini akhirnya tersedia pada OpenSSH 6.2 (dirilis Maret 2013), menggunakan AuthenticationMethods
opsi konfigurasi.
Misalnya, Anda dapat menambahkan baris berikut sshd_config
untuk meminta otentikasi kunci publik dan kata sandi:
AuthenticationMethods publickey,password
Saat masuk, ssh
dan scp
pertama-tama akan melakukan otentikasi kunci publik, dan kemudian meminta kata sandi:
$ ssh user@example.org
Authenticated with partial success.
user@example.org's password:
Jika Anda memiliki kata sandi pada file kunci pribadi Anda, Anda tentu saja akan diminta untuk itu. Contoh menggunakan Putty :
Using username "user".
Authenticating with public key "rsa-key-20131221-user"
Passphrase for key "rsa-key-20131221-user":
Further authentication required
user@example.org's password:
OpenSSH di RHEL / CentOS 6.3 sekarang mendukung fitur ini, meskipun saya tidak dapat menemukannya disebutkan dalam catatan rilis OpenSSH. Dari catatan rilis RHEL :
SSH sekarang dapat diatur untuk memerlukan beberapa cara otentikasi (padahal sebelumnya SSH memperbolehkan beberapa cara otentikasi yang hanya diperlukan satu untuk login yang berhasil); misalnya, masuk ke mesin berkemampuan SSH membutuhkan frasa sandi dan kunci publik untuk dimasukkan. The
RequiredAuthentications1
danRequiredAuthentications2
pilihan dapat dikonfigurasi dalam/etc/ssh/sshd_config
file untuk menentukan otentikasi yang diperlukan untuk log sukses dalam contoh.:~]# echo "RequiredAuthentications2 publickey,password" >> /etc/ssh/sshd_config
Untuk informasi lebih lanjut tentang
/etc/ssh/sshd_config
opsi yang disebutkan di atas , lihatsshd_config
halaman manual.
Itu mungkin tetapi dalam cara yang kludgish dan terbatas. Pertama, Anda hanya mengizinkan otentikasi kunci publik. Kemudian di /etc/ssh/sshd_config
tambahkan ForceCommand
yang menjalankan skrip yang akan memeriksa kata sandi.
Script akan merusak SFTP kecuali Anda memeriksa bahwa perintahnya sftp dan membiarkannya tanpa kata sandi.
Saya belum pernah mencoba ini sehingga seseorang mungkin dapat melihat lebih banyak masalah.