Справочник

Кто заходил на сервер: команды who, w, last и журнал входов SSH

Сервер записывает каждый вход: кто, когда и с какого IP. Ниже — как посмотреть, кто подключён прямо сейчас, кто заходил раньше и кто пытался подобрать пароль.

Обновлено 11.10.2026≈ 5 мин чтения
Содержание 9

Что сделать прямо сейчас

  1. Подключитесь к серверу — инструкция.
  2. Наберите w — увидите всех, кто подключён сейчас. Вы тоже будете в списке.
  3. Наберите last -n 20 — последние 20 входов на сервер: имя, IP, время входа и выхода.
  4. Наберите sudo lastb -n 20 — последние неудачные попытки входа.
  5. Сверьте IP в списках со своим. Свой IP покажет w в строке вашего сеанса.

Кто на сервере сейчас

КомандаЧто покажет
whoимя, терминал, время входа и IP в скобках
wто же и что делает каждый пользователь: команду в столбце WHAT
w -iIP-адрес вместо имени компьютера в столбце FROM
ttyваш собственный терминал, например /dev/pts/0
who -bкогда сервер последний раз загружался

Первая строка w — текущее время, сколько сервер работает без перезагрузки, сколько пользователей подключено и средняя нагрузка — Load average. Затем по строке на каждый сеанс: USER — имя, TTY — терминал, FROM — откуда подключились, LOGIN@ — время входа, IDLE — сколько сеанс ничего не делает, WHAT — команда. Если столбца FROM нет, наберите w -f.

Кто заходил раньше

КомандаЧто покажет
last -n 20последние 20 входов
last ivanвходы только пользователя ivan
last -iIP-адреса вместо имён компьютеров
last -Fполные дату и время входа и выхода
last -s yesterdayвходы со вчерашнего дня
last rebootкогда сервер перезагружался

last берёт данные из файла /var/log/wtmp и показывает входы с того дня, когда этот файл был создан. Последняя строка вывода — wtmp begins и дата начала файла. still logged in в конце строки значит, что сеанс ещё открыт.

Неудачные попытки входа

sudo lastb -n 20 покажет последние неудачные входы: неверный пароль или имя. lastb читает файл /var/log/btmp, а его может открыть только root, поэтому нужен sudo.

Подробнее — в журнале SSH. Входы по ключу и по паролю:

sudo grep 'Accepted' /var/log/auth.log | tail -n 20

Неверные пароли:

sudo grep 'Failed password' /var/log/auth.log | tail -n 20

Если файла /var/log/auth.log нет, те же строки покажет sudo journalctl -u ssh. О команде grep — Команда grep.

Строка в журналеЧто значит
Accepted publickey for ivan from 203.0.113.5 port 52344 ssh2: ED25519 SHA256:…ivan вошёл по SSH-ключу с IP 203.0.113.5; в конце — тип и отпечаток ключа
Accepted password for ivan from 203.0.113.5 port 52344 ssh2ivan вошёл по паролю
Failed password for ivan from 198.51.100.7 port 40112 ssh2кто-то ввёл неверный пароль для ivan
Failed password for invalid user admin from 198.51.100.7 port 40112 ssh2пароль подбирали к имени admin, а такого пользователя на сервере нет
Invalid user admin from 198.51.100.7 port 40112попытка войти под несуществующим именем

Перед каждой такой строкой в журнале стоят дата и время.

Сколько попыток и с каких IP

Посчитать, с каких адресов подбирают пароль, поможет одна команда:

sudo grep 'Failed password' /var/log/auth.log | grep -o 'from [0-9.]*' \
  | sort | uniq -c | sort -rn | head

Слева — число попыток, справа — адрес. Как работают sort и uniq — Команды wc, sort и uniq.

Много таких строк с разных адресов — это боты, они перебирают пароли на всех серверах подряд. Защита одна: закрыть вход по паролю и входить только по SSH-ключу — шаг 4 в инструкции по настройке VPS.

Если вход был не ваш

  1. Узнайте свой терминал: tty. Найдите в w чужой сеанс и запомните его TTY, например pts/1.
  2. Завершите чужой сеанс: sudo pkill -KILL -t pts/1. Не указывайте свой терминал — иначе отключитесь сами.
  3. Смените пароль пользователя, под которым вошли, — Как изменить пароль пользователя.
  4. Проверьте ключи: cat ~/.ssh/authorized_keys. Удалите строки с ключами, которые вы не добавляли, — как править файл.
  5. Напишите в поддержку провайдера: они помогут проверить сервер.

Ошибки и как их исправить

Что видноЧто значитЧто сделать
lastb пишет, что нет доступа к /var/log/btmpфайл может читать только rootsudo lastb
No such file or directory у /var/log/auth.logна сервере нет службы, которая пишет этот файлsudo journalctl -u ssh
в last нет старых входовфайл wtmp создан позжесмотрите журнал SSH: в нём своя история
в w нет столбца FROMон выключенw -f
в журнале сотни Failed password с разных IPботы подбирают парользакройте вход по паролю — шаг 4
Accepted с незнакомого IPкто-то вошёл под вашим именемзавершите сеанс и смените пароль

Источники

Сверено 11 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 11.10.2026