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: Да, именно так. Или любой другой метод, который вы предпочитаете для этой задачи.
Свен
Разве первый метод не мешает надлежащим мерам безопасности, таким как 700права доступа к .sshкаталогу пользователя и корень сквоша в смонтированных домашних каталогах?
Огрский псалом33
1
@ OgrePsalm33: Вы можете выполнить этот поиск на сервере NFS ...
Свен
1
@R ..: Вы можете получить NFS с достаточной безопасностью с NFSv4 и Kerberos (в этом случае регистрация на основе ключей становится сложной). Кроме этого: Да, вход на основе ключа работает без каких-либо проблем, когда ~/.sshон установлен 700в корневые каталоги NFS и находится в них, поэтому он явно должен переключать идентификаторы пользователей, по крайней мере, для аутентификации на основе ключей authorized_keys.
Свен
19

Самый быстрый способ - отключить его и посмотреть, кто стучит в дверь вашего офиса; p

Пит
источник
6
Это не самый быстрый способ, потому что не каждый пользователь может войти в систему каждый день, в то время как журналы могут четко показывать, когда кто-то вошел в систему, поэтому они дают мгновенный результат
Ferrybig
3
Это самый медленный путь. Люди входят в систему только на сервере, если их приложение не работает. Это может занять годы.
Навин
@pete ты топ :)
c4f4t0r