SSH - mengidentifikasi pengguna mana yang masih masuk menggunakan kata sandi

32

Saya memiliki server Ubuntu Linux yang memungkinkan otentikasi kata sandi untuk SSH, dan saya ingin mengubahnya menjadi kunci SSH saja dan menonaktifkan login kata sandi.

Sebelum saya menonaktifkan login kata sandi, bagaimana saya bisa mengetahui pengguna mana yang masih menggunakan kata sandi, dan mana yang telah beralih ke otentikasi kunci?

PeterB
sumber
Btw., Sementara banyak orang tidak mengetahuinya, Anda juga dapat meminta kunci dan kata sandi serveride. Sedikit lebih menyusahkan, tetapi tentu saja lebih aman juga, jika Anda melakukannya ...
deviantfan
34
Nonaktifkan login kata sandi tanpa pemberitahuan dan lihat berapa banyak orang yang berteriak.
Mark
@deviantfan Akan lebih aman untuk hanya memerlukan keyfile yang lebih lama , tetapi itu akan membutuhkan sedikit skrip.
jpaugh
1
@deviantfan saya ambil poin Anda. Tapi, Anda mengasumsikan kata sandi untuk kunci pribadi berbeda dari yang untuk server; (padahal, saya berasumsi file kunci pribadi memiliki kata sandi, saya tahu.)
jpaugh

Jawaban:

48

Anda tidak dapat melakukannya 100% andal, tetapi ada dua indikasi kuat:

  • Pertama, keberadaan .ssh/authorized_keysfile adalah petunjuk bahwa pengguna setidaknya siap untuk menggunakan login berbasis kunci
  • Kedua, dalam file log otentikasi ( /var/log/securepada CentOS, /var/log/auth.logpada Debian / Ubuntu), metode auth akan dicatat:

    Sep 28 13:44:28 hostname sshd[12084]: Accepted publickey for sven
    

    vs.

    Sep 28 13:47:36 hostname sshd[12698]: Accepted password for sven
    

    Pindai log untuk entri dengan kata sandi yang disebutkan untuk mengetahui siapa yang masih menggunakan kata sandi. Ini tidak akan bekerja dengan pengguna yang jarang masuk tentu saja kecuali Anda memiliki retensi log yang sangat lama.

Sven
sumber
dengan 'Memindai' file log, saya kira Anda maksud opsi yang masuk akal seperti menggunakan grep? grep 'password' /var/log/ssh/sshd.log
djsmiley2k - KK
8
@ djsmiley2k: Ya, persis. Atau metode apa pun yang Anda inginkan untuk tugas itu.
Sven
Bukankah metode pertama digagalkan oleh praktik keamanan yang tepat, seperti 700izin pada .sshdirektori pengguna , dan root squash pada direktori home yang di-mount?
Ogre Psalm33
1
@ OgrePsalm33: Anda dapat melakukan pencarian ini di server NFS ...
Sven
1
@R ..: Anda bisa mendapatkan NFS yang cukup aman dengan NFSv4 dan Kerberos (dalam hal ini login berbasis kunci menjadi rumit). Selain itu: Ya, login berbasis kunci berfungsi tanpa masalah ketika ~/.sshdiatur ke 700dan di direktori home NFS yang tergencet, sehingga jelas harus mengubah id pengguna setidaknya untuk auth berbasis kunci untuk membaca authorized_keys.
Sven
19

Cara tercepat adalah dengan menonaktifkannya dan melihat siapa yang mengetuk pintu kantor Anda;

pete
sumber
6
Ini bukan cara tercepat, karena tidak setiap pengguna dapat masuk setiap hari, sementara log dapat dengan jelas ditampilkan ketika seseorang masuk, sehingga mereka memberikan hasil instan
Ferrybig
3
Ini cara paling lambat. Orang-orang hanya masuk ke server jika aplikasi mereka tidak aktif. Mungkin butuh bertahun-tahun untuk itu terjadi.
Navin
@pete kamu adalah yang teratas :)
c4f4t0r