Поиск по сайту:

Узнайте, использует ли пользователь SSH-аутентификацию на основе пароля или ключа.

Представьте себе этот сценарий. Вы только что настроили аутентификацию на основе ключей SSH на своем сервере Linux. А затем вы решили полностью отключить аутентификацию на основе пароля и разрешить всем пользователям только аутентификацию на основе ключей. Прежде чем отключать аутентификацию по паролю, вы хотели бы проверить, какие пользователи все еще используют пароли для доступа к серверу через SSH. Как собираешься это сделать? Что ж, это возможно! В этом кратком руководстве объясняется, как определить, использует ли пользователь SSH-аутентификацию на основе пароля или ключа в Linux.

Узнайте, использует ли пользователь SSH-аутентификацию на основе пароля или ключа.

Мы можем определить, вошел ли пользователь на сервер Linux через SSH, используя пароль или ключ ssh. Это не 100% надежный и гарантированный способ, но все же хороший подход.

Сначала проверьте, существует ли файл ~/.ssh/authorized_keys. Потому что в методе аутентификации на основе ключей SSH открытый ключ SSH должен быть загружен в системы, к которым вы хотите получить доступ через SSH. Открытые ключи обычно хранятся в файле с именем ~/.ssh/authorized_keys в удаленных системах. Если этот файл существует, есть вероятность, что пользователь, вероятно, использует аутентификацию на основе ключей.

Затем проверьте файлы журнала аутентификации, чтобы определить, какой метод аутентификации в данный момент использует пользователь для доступа к удаленной системе. Метод аутентификации регистрируется в файле "/var/log/secure" в системах на базе RPM (например, CentOS), файле "/var/log/auth.log" в системах на базе DEB (например, Ubuntu).

Просто найдите запись пароля в файлах журнала аутентификации, используя команду grep или любой другой удобный вам способ.

grep 'password' /var/log/secure

Или,

grep 'password' /var/log/auth.log

Пример вывода:

[...]
May  8 10:40:36 ostechnix sshd[3303]: Accepted password for senthil from 192.168.225.37 port 41990 ssh2
May  8 10:40:56 ostechnix sshd[3405]: Accepted password for sk from 192.168.225.37 port 41992 ssh2

Узнайте, использует ли пользователь SSH-аутентификацию на основе пароля или ключа в Linux.

Вы заметили строки "Принятый пароль для..." в приведенном выше выводе? Это означает, что пользователь получает доступ к удаленным системам, используя пароль. Согласно приведенному выше выводу, пользователи "senthil" и "sk" получают доступ к удаленной системе с использованием аутентификации по паролю ssh.

Если пользователь использует аутентификацию на основе ключей, вы, вероятно, увидите вывод, подобный приведенному ниже:

May 8 10:40:56 ostechnix sshd[3405]: Accepted publickey for sk from 192.168.225.37 port 41992 ssh2

Конечно, это немного сложно, если файл журнала очень длинный и содержит большое количество записей. В этом случае используйте команду "tail" для просмотра определенного количества файлов журналов.

Например, следующая команда отобразит только последние 10 записей файла журнала:

grep 'password' /var/log/auth.log | tail -n 10

Пример вывода:

May  8 10:21:49 ostechnix sshd[2135]: Accepted password for senthil from 192.168.225.37 port 41920 ssh2
May  8 10:21:57 ostechnix sshd[2222]: Accepted password for sk from 192.168.225.37 port 41922 ssh2
May  8 10:24:57 ostechnix sshd[2360]: Accepted password for senthil from 192.168.225.37 port 41924 ssh2
May  8 10:25:04 ostechnix sshd[2448]: Accepted password for sk from 192.168.225.37 port 41926 ssh2
May  8 10:29:40 ostechnix sshd[2663]: Accepted password for senthil from 192.168.225.37 port 41938 ssh2
May  8 10:29:55 ostechnix sshd[2765]: Accepted password for sk from 192.168.225.37 port 41940 ssh2
May  8 10:39:34 ostechnix sshd[3064]: Accepted password for senthil from 192.168.225.37 port 41986 ssh2
May  8 10:39:55 ostechnix sshd[3184]: Accepted password for sk from 192.168.225.37 port 41988 ssh2
May  8 10:40:36 ostechnix sshd[3303]: Accepted password for senthil from 192.168.225.37 port 41990 ssh2
May  8 10:40:56 ostechnix sshd[3405]: Accepted password for sk from 192.168.225.37 port 41992 ssh2

Вы также можете использовать флаг -f, чтобы следить за журналом во время тестирования.

grep 'password' /var/log/auth.log | tail -f -n 10

Если вы хотите проверить весь файл журнала на наличие записей "пароль" постранично, используйте команду "less":

grep 'password' /var/log/auth.log | less

Чтобы найти все журналы, относящиеся к sshd (успешные или неудачные попытки), замените «пароль» на «sshd» во всех приведенных выше командах.

grep 'sshd' /var/log/auth.log | tail -n 10

Другие руководства по SSH:

  • Разрешить или запретить доступ по SSH определенному пользователю или группе в Linux
  • Ограничить количество входов по SSH на пользователя/группу/систему
  • Ограничить доступ к серверам Linux с помощью TCP-оболочек
  • Выполнение команд в удаленных системах Linux через SSH
  • Как создать псевдоним SSH в Linux
  • Как подключиться по SSH к определенному каталогу в Linux
  • SSLH - используйте один и тот же порт для HTTPS и SSH
  • ScanSSH — быстрый SSH-сервер и открытый прокси-сканер
  • Как возобновить частично переданные файлы по SSH с помощью Rsync
  • Как запустить одну команду на нескольких удаленных системах одновременно
  • DSH - запуск команды Linux на нескольких хостах одновременно
  • Как предотвратить разрыв сеанса SSH в Linux
  • Как включить SSH во FreeBSD

Надеюсь это поможет.

Статьи по данной тематике