Как найти активные SSH-соединения в Linux
На этой странице
- Предпосылки
- Найти активное соединение SSH с помощью команды who
- Найти активное соединение SSH с помощью команды w
- Найти активное соединение SSH с помощью команды ps
- Найти активное соединение SSH с помощью команды netstat
- Найти активное соединение SSH с помощью последней команды
- Найти активное соединение SSH с помощью команды ss
- Заключение
Если вы являетесь системным администратором Linux и отвечаете за управление серверами, вам часто может понадобиться знать, сколько ssh-соединений активно на вашем сервере и откуда они исходят. В Linux доступно несколько команд и инструментов для поиска активных соединений SSH на вашем сервере.
В этом руководстве мы покажем, как найти активные SSH-соединения различными методами в Linux.
Предпосылки
- Сервер под управлением операционной системы Linux.
- У вас есть права root на этом сервере.
Найти активное SSH-соединение с помощью команды who
who — это утилита командной строки Linux, используемая для отображения списка пользователей, которые в данный момент вошли на сервер.
Откройте терминал и запустите команду who, чтобы найти активные соединения на вашем сервере:
who
Вы должны получить следующий результат:
root pts/0 2020-05-01 02:37 (27.61.161.61) root pts/1 2020-05-01 02:39 (45.58.38.21)
Как видите, есть два активных SSH-соединения с IP-адресами 27.61.161.61 и 45.58.38.21.
Найти активное SSH-соединение с помощью команды w
w — еще одна утилита командной строки, которая отображает информацию о текущем пользователе, вошедшем в систему на вашем сервере. Эта команда предоставляет больше информации, чем команда who, например активные сеансы и запущенный процесс в этих сеансах.
Вы можете запустить команду w, как показано ниже:
w
Вы должны получить следующий результат:
02:40:07 up 1 day, 18:35, 2 users, load average: 0.02, 0.02, 0.00 USER TTY FROM IDLE JCPU PCPU WHAT root pts/0 27.61.161.61 02:37 1.00s 0.04s 0.01s ssh root pts/1 45.58.38.21 02:39 1.00s 0.02s 0.00s w
Как видите, эта команда также отображает сведения о времени простоя, исходном IP-адресе, времени входа в систему, средней нагрузке и процессах.
Найти активное SSH-соединение с помощью команды ps
Команда ps также предоставляет вам информацию об активных сеансах SSH на вашем сервере. Это дает вам некоторую дополнительную информацию, такую как PID активных соединений SSH.
Вы можете запустить команду ps, как показано ниже.
ps auxwww | grep sshd: | grep -v grep
Вы должны увидеть следующий вывод:
root 609 0.0 0.1 12160 7268 ? Ss Apr29 0:01 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups root 35532 0.0 0.2 13864 8796 ? Ss 02:37 0:00 sshd: /0 root 35669 0.0 0.2 13860 8916 ? Ss 02:38 0:00 sshd: /1
Найдите активное соединение SSH с помощью команды netstat
Netstat — это инструмент командной строки, который можно использовать для отображения активных или установленных SSH-соединений удаленных хостов с вашим сервером.
Вы можете запустить команду netstat, как показано ниже:
netstat -tnpa | grep 'ESTABLISHED.*sshd'
Вы должны увидеть следующий вывод:
tcp 0 88 45.58.38.21:22 27.61.161.61:8363 ESTABLISHED 35532/sshd: tcp 0 0 45.58.38.21:22 45.58.38.21:51166 ESTABLISHED 35669/sshd:
Найти активное соединение SSH с последней командой
Последняя команда используется для отображения списка всех пользователей, которые вошли в систему и вышли из нее с момента создания файла /var/log/wtmp. С помощью последней команды вы также можете найти информацию об активном соединении SSH между клиентом и сервером.
Выполните следующую команду, чтобы найти активные соединения SSH на вашем сервере.
last -a | grep -i still
Вы должны увидеть следующий вывод:
root pts/1 Fri May 1 02:39 still logged in 45.58.38.21 root pts/0 Fri May 1 02:37 still logged in 27.61.161.61 reboot system boot Wed Apr 29 08:04 still running 5.4.0-26-generic
Найти активное SSH-соединение с помощью команды ss
ss очень похож на netstat и используется для отображения большего количества информации, чем другие инструменты. Вы можете использовать команду ssh с grep, чтобы просмотреть активное соединение SSH на вашем сервере.
Запустите команду ss с grep, как показано ниже:
ss | grep -i ssh
Вы должны увидеть следующий вывод:
tcp ESTAB 0 0 45.58.38.21:51166 45.58.38.21:ssh tcp ESTAB 0 56 45.58.38.21:ssh 27.61.161.61:8363 tcp ESTAB 0 0 45.58.38.21:ssh 45.58.38.21:51166
Как видите, есть два активных подключения с клиентского IP 45.58.38.21 и 27.61.161.61.
Заключение
В приведенном выше руководстве мы узнали, как найти активные SSH-соединения различными методами. Теперь вы можете легко отслеживать, кто зашел на ваш сервер.