Cara Menyediakan Pengesahan Dua Faktor Untuk SSH di Linux

Cara Menyediakan Pengesahan Dua Faktor Untuk SSH di Linux

Secara lalai, SSH Sudah menggunakan komunikasi data yang selamat antara mesin jauh, tetapi jika anda ingin menambah beberapa lapisan keselamatan tambahan ke sambungan SSH anda, anda boleh menambah a Google Authenticator (Pengesahan dua faktor) modul yang membolehkan anda memasukkan kata laluan satu kali secara rawak (Totp) kod pengesahan semasa menyambung ke SSH pelayan. Anda perlu memasukkan kod pengesahan dari anda telefon pintar atau Pc semasa anda menyambung.

The Google Authenticator adalah modul sumber terbuka yang merangkumi pelaksanaan kod laluan satu kali (Totp) token pengesahan yang dibangunkan oleh Google.

Ia menyokong beberapa platform mudah alih, serta PAM (modul pengesahan pluggable). Kod laluan satu kali ini dijana menggunakan piawaian terbuka yang dibuat oleh Sumpah Inisiatif untuk pengesahan terbuka).

Dalam artikel ini, saya akan menunjukkan kepada anda bagaimana untuk menubuhkan dan mengkonfigurasi SSH Untuk pengesahan dua faktor di bawah pengagihan Linux berasaskan Redhat dan Debian seperti Fedora, CentOS Stream, Rocky Linux, dan Almalinux, Ubuntu, Debian, dan Mint.

Memasang Google Authenticator di Linux

Buka mesin yang anda ingin sediakan pengesahan dua faktor dan pasangkan yang berikut Pam perpustakaan bersama dengan perpustakaan pembangunan yang diperlukan untuk Pam modul untuk berfungsi dengan betul dengan Google Authenticator modul.

Pada sistem berasaskan Redhat memasang 'Pam-Devel'Pakej menggunakan arahan yum berikut.

# yum Pasang Google -Authenticator -y 

Pada sistem berasaskan Debian memasang 'libpam0g-dev'Pakej menggunakan perintah yang sesuai berikut.

$ sudo apt memasang libpam-google-authenticator -y 

Menjana token pengesahan Google

Sebaik sahaja anda menjalankan 'Google-Authenticator'Perintah, ini akan mendorong anda dengan beberapa soalan.

# Google-Authenticator 

Cukup taip "y"(Ya) sebagai jawapan dalam kebanyakan situasi. Sekiranya ada masalah, anda boleh menaip lagi 'Google-Authenticator'Perintah untuk menetapkan semula tetapan.

  • Adakah anda mahukan token pengesahan menjadi berasaskan masa (y/n) y

Selepas soalan ini, anda akan mendapat 'Kunci Rahsia'Dan'kod kecemasan'. Tulis butiran ini di suatu tempat, kami memerlukan 'Kunci Rahsia'Kemudian untuk menubuhkan Google Authenticator aplikasi.

# Google-Authenticator Adakah anda mahu token pengesahan menjadi masa (y/n) y Amaran: Menyisipkan URL berikut ke penyemak imbas anda mendedahkan rahsia OTP ke Google: https: // www.Google.com/carta?CHS = 200x200 & chld = m | 0 & cht = qr & chl = otpauth: // totp/[dilindungi e -mel]%3fsecret%3dcyzf2yf7hfgx55555555555jm%26issuer%3dtecmint. Pertimbangkan menaip rahsia OTP ke dalam aplikasi anda secara manual. Kunci rahsia baru anda ialah: CyZf2YF7HFGX55ZEPQYLHOM Masukkan kod dari aplikasi (-1 hingga melangkau): -1 Pengesahan kod melangkau kod calar kecemasan anda adalah: 83714291 53083200 80975623 57217008 77496339

Seterusnya, ikut wizard persediaan dan dalam kebanyakan kes taip jawapannya sebagai "y"(Ya) seperti yang ditunjukkan di bawah.

Adakah anda mahu saya mengemas kini "/root/.Google_authenticator "Fail (y/n) y Adakah anda ingin tidak membenarkan banyak kegunaan token pengesahan yang sama? Ini membatasi anda untuk satu log masuk kira-kira setiap 30-an, tetapi ia meningkatkan peluang anda untuk melihat atau bahkan menghalang serangan lelaki-dalam-pertengahan (Y/N) y Secara lalai, token baik selama 30 saat dan untuk mengimbangi kemungkinan masa yang mungkin di antara klien dan pelayan, kami membenarkan token tambahan sebelum dan selepas masa sekarang. Sekiranya anda mengalami masalah dengan penyegerakan masa yang lemah, anda boleh meningkatkan tetingkap dari saiz lalai 1: 30min hingga kira -kira 4 minit. Adakah anda mahu melakukannya (Y/N) y Sekiranya komputer yang anda masuk tidak mengeras terhadap percubaan log masuk kekerasan, anda boleh mengaktifkan pembatasan kadar untuk modul pengesahan. Secara lalai, ini mengehadkan penyerang kepada tidak lebih daripada 3 percubaan log masuk setiap 30 -an. Adakah anda ingin mengaktifkan pengurangan kadar (y/n) y
Menjana token Google Auth

Mengkonfigurasi SSH untuk menggunakan Google Authenticator di Linux

Buka Pam fail konfigurasi '/etc/Pam.D/SSHD'Dan tambahkan baris berikut ke bahagian bawah fail.

auth diperlukan PAM_GOOGLE_AUTHENTICATOR.jadi nullok auth diperlukan pam_permit.Jadi 
Konfigurasikan Pam untuk SSH

Seterusnya, buka SSH fail konfigurasi '/etc/ssh/sshd_config'Dan tatal ke bawah untuk mencari garis yang mengatakan.

ChallengeSesponseAuthentication no 

Tukar ke "Ya". Jadi, ia menjadi seperti ini.

ChallengeresponseAuthentication Ya 
Konfigurasikan SSH untuk Google Auth

Akhirnya, mulakan semula SSH perkhidmatan untuk mengambil perubahan baru.

# Systemctl mulakan semula sshd atau $ sudo systemctl mulakan semula sshd 

Mengkonfigurasi Aplikasi Google Authenticator

Lancarkan Google Authenticator aplikasi pada telefon pintar anda. Tekan + dan pilih "Masukkan kekunci persediaan". Sekiranya anda tidak mempunyai aplikasi ini, anda boleh memuat turun dan memasang aplikasi Google Authenticator pada anda Android/iPhone/BlackBerry peranti.

Tambahkan akaun anda 'Nama'Dan masukkan'Kunci Rahsia'Dihasilkan lebih awal.

Kunci Rahsia SSH

Ia akan menghasilkan kata laluan sekali (kod pengesahan) yang akan sentiasa mengubah setiap 30sec di telefon anda.

Kod Auth Google SSH

Sekarang cuba log masuk melalui SSH, anda akan diminta dengan a Kod Pengesahan Google (Kod pengesahan) dan Kata laluan Bila -bila masa anda cuba log masuk melalui SSH. Anda hanya mempunyai 30 saat Untuk memasukkan kod pengesahan ini, jika anda terlepas, ia akan menjana semula kod pengesahan baru.

Log masuk sebagai: Akses Tecmint ditolak menggunakan pengesahan keyboard-interaktif. Kod pengesahan: Menggunakan pengesahan keyboard-interaktif. Kata Laluan: Log masuk terakhir: Tue 23 Apr 13:58:29 2022 dari 172.16.25.125 [[dilindungi e -mel] ~]#

Sekiranya anda tidak mempunyai telefon pintar, anda juga boleh menggunakan a Firefox Add-on dipanggil Authenticator untuk melakukan pengesahan dua faktor.

Penting: Pengesahan dua faktor berfungsi dengan log masuk SSH berasaskan kata laluan. Sekiranya anda menggunakan sesi SSH utama/awam, ia akan mengabaikan pengesahan dua faktor dan log anda secara langsung.