Bagaimana saya bisa mengaktifkan otentikasi kata sandi dan kunci publik dengan OpenSSH

10

Saya ingin sshd memverifikasi kunci publik pengguna dan kemudian meminta kata sandi mereka, bukan hanya satu atau yang lain. Apakah ini mungkin?

mengherankan_
sumber

Jawaban:

12

Ini akhirnya tersedia pada OpenSSH 6.2 (dirilis Maret 2013), menggunakan AuthenticationMethodsopsi konfigurasi.

Misalnya, Anda dapat menambahkan baris berikut sshd_configuntuk meminta otentikasi kunci publik dan kata sandi:

AuthenticationMethods publickey,password

Saat masuk, sshdan scppertama-tama akan melakukan otentikasi kunci publik, dan kemudian meminta kata sandi:

$ ssh [email protected]
Authenticated with partial success.
[email protected]'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
[email protected]'s password:
Søren Løvborg
sumber
1

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 RequiredAuthentications1dan RequiredAuthentications2pilihan dapat dikonfigurasi dalam /etc/ssh/sshd_configfile 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_configopsi yang disebutkan di atas , lihat sshd_confighalaman manual.

Mgorven
sumber
0

Itu mungkin tetapi dalam cara yang kludgish dan terbatas. Pertama, Anda hanya mengizinkan otentikasi kunci publik. Kemudian di /etc/ssh/sshd_configtambahkan ForceCommandyang 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.

Mark Wagner
sumber