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

Как найти активные SSH-соединения в Linux


На этой странице

  1. Предпосылки
  2. Найти активное соединение SSH с помощью команды who
  3. Найти активное соединение SSH с помощью команды w
  4. Найти активное соединение SSH с помощью команды ps
  5. Найти активное соединение SSH с помощью команды netstat
  6. Найти активное соединение SSH с помощью последней команды
  7. Найти активное соединение SSH с помощью команды ss
  8. Заключение

Если вы являетесь системным администратором 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-соединения различными методами. Теперь вы можете легко отслеживать, кто зашел на ваш сервер.