SSH - визначте, які користувачі все ще входять за допомогою паролів


32

У мене є сервер Ubuntu Linux, що дозволяє перевірити автентифікацію пароля для SSH, і я хочу переключити його лише на ключі SSH та відключити вхід пароля.

Перш ніж відключити вхід пароля, як я можу дізнатися, хто користувачі все ще використовують паролі та які перейшли на автентифікацію ключа?


До речі, хоча багато людей цього не знають, ви також можете попросити ключ і пароль на сервері. Трохи більш набридливий, але, звичайно, також більш безпечний, якщо ви це зробите ...
deviantfan

34
Вимкніть логін із паролем без попередження та побачите, скільки людей кричить.
Марк


@deviantfan Більш безпечним було б просто вимагати більш тривалий файл ключів , але це зажадає трохи сценаріїв.
jpaugh

1
@deviantfan Я сприймаю вашу думку. Але ви припускаєте, що пароль для приватного ключа відрізняється від пароля для сервера; (тоді як я припускаю, що у файлу приватного ключа є пароль, я знаю.)
jpaugh

Відповіді:


48

Ви не можете зробити це на 100% надійно, але є два чіткі ознаки:

  • По-перше, наявність .ssh/authorized_keysфайлу - це підказка, що користувач принаймні готовий до використання ключа на основі входу
  • По-друге, у файлі журналу аутентифікації ( /var/log/secureна CentOS, /var/log/auth.logна Debian / Ubuntu) метод авторизації буде записаний:

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

    проти

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

    Скануйте журнал на наявність записів із зазначенням пароля, щоб дізнатися, хто ще використовує паролі. Це, звичайно, не працюватиме з користувачами, які рідко входять у систему, якщо у вас не буде дуже тривалого зберігання журналу.


"Сканувати" файл журналу, я вважаю, ви маєте на увазі розумні варіанти, такі як використання grep? grep 'password' /var/log/ssh/sshd.log
djsmiley2k - CoW

8
@ djsmiley2k: Так, саме так. Або будь-який інший метод, який ви віддаєте перевагу для цього завдання.
Sven

Хіба не перший спосіб зірваний належними методами безпеки, такими як 700дозволи в .sshкаталозі користувача та коренева скрипта на встановлених домашніх каталогах?
Псалом Огре3333

1
@ OgrePsalm33: Цей пошук можна здійснити на сервері NFS ...
Sven

1
@R ..: Ви можете отримати безпечний NFS за допомогою NFSv4 та Kerberos (у такому випадку вхід на основі ключів ускладнюється). Крім цього: Так, вхід на основі ключів працює без жодних проблем, коли ~/.sshвін встановлений 700у домашніх каталогіх NFS і в кореневих файлах, тому він чітко повинен перемикати ідентифікаційні дані користувачів, принаймні, для авторизації, заснованої на ключах authorized_keys.
Свен

19

Найшвидший спосіб - відключити його і побачити, хто стукає у двері вашого офісу; p


6
Це не найшвидший спосіб, оскільки не кожен користувач може входити щодня, тоді як журнали можуть чітко показувати, коли хтось увійшов, тому вони дають миттєвий результат
Ferrybig

3
Це найповільніший шлях. Люди входять на сервер лише у тому випадку, коли їх програма не працює. Це може зайняти роки, щоб це сталося.
Навін

@pete ти найкращий :)
c4f4t0r
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.