Кто заходил на сервер: команды who, w, last и журнал входов SSH
Сервер записывает каждый вход: кто, когда и с какого IP. Ниже — как посмотреть, кто подключён прямо сейчас, кто заходил раньше и кто пытался подобрать пароль.
Содержание 9
Что сделать прямо сейчас
- Подключитесь к серверу — инструкция.
- Наберите
w— увидите всех, кто подключён сейчас. Вы тоже будете в списке. - Наберите
last -n 20— последние 20 входов на сервер: имя, IP, время входа и выхода. - Наберите
sudo lastb -n 20— последние неудачные попытки входа. - Сверьте IP в списках со своим. Свой IP покажет
wв строке вашего сеанса.
Кто на сервере сейчас
| Команда | Что покажет |
|---|---|
who | имя, терминал, время входа и IP в скобках |
w | то же и что делает каждый пользователь: команду в столбце WHAT |
w -i | IP-адрес вместо имени компьютера в столбце 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 -i | IP-адреса вместо имён компьютеров |
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 ssh2 | ivan вошёл по паролю |
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.
Если вход был не ваш
- Узнайте свой терминал:
tty. Найдите вwчужой сеанс и запомните егоTTY, например pts/1. - Завершите чужой сеанс:
sudo pkill -KILL -t pts/1. Не указывайте свой терминал — иначе отключитесь сами. - Смените пароль пользователя, под которым вошли, — Как изменить пароль пользователя.
- Проверьте ключи:
cat ~/.ssh/authorized_keys. Удалите строки с ключами, которые вы не добавляли, — как править файл. - Напишите в поддержку провайдера: они помогут проверить сервер.
Ошибки и как их исправить
| Что видно | Что значит | Что сделать |
|---|---|---|
| lastb пишет, что нет доступа к /var/log/btmp | файл может читать только root | sudo 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 | кто-то вошёл под вашим именем | завершите сеанс и смените пароль |
Источники
- Справка who для Ubuntu 24.04 — кто сейчас на сервере, файлы utmp и wtmp, ключ -b.
- Справка w для Ubuntu 24.04 — строка заголовка и столбцы: имя, терминал, откуда, время входа, простой, команда; ключи -f и -i.
- Справка last для Ubuntu 24.04 — журнал входов из /var/log/wtmp, last reboot, lastb и /var/log/btmp, ключи -n, -i, -F и -s.
- Исходный код util-linux 2.39.3: last.c — строки wtmp begins и still logged in.
- Исходный код OpenSSH 9.6: auth.c — строки журнала Accepted и Failed с методом входа, именем, IP и портом, Invalid user; эта версия sshd входит в Ubuntu 24.04.
Сверено 11 октября 2026 года.
Что почитать дальше
- Как настроить VPSзакрыть вход по паролю и под root.
- Как изменить пароль пользователяесли пароль могли узнать.
- Команды wc, sort и uniqпосчитать строки в журнале.
- Команды Linux для новичкашпаргалка по командам.
Проверено и обновлено: 11.10.2026