Как проверить, запущен ли SSH - сервер в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь проверять, запущен ли SSH-сервер на системе Linux. Вы будете использовать команду systemctl status ssh для проверки состояния запущенного сервиса, команду ss -tuln для проверки, открыт ли и прослушивается ли порт SSH, а также команду cat /etc/ssh/sshd_config для изучения файла конфигурации SSH-сервера. Эти шаги являются основой для устранения неполадок и проверки функциональности SSH-сервера.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("Network Monitoring") subgraph Lab Skills linux/cat -.-> lab-558785{{"Как проверить, запущен ли SSH - сервер в Linux"}} linux/service -.-> lab-558785{{"Как проверить, запущен ли SSH - сервер в Linux"}} linux/netstat -.-> lab-558785{{"Как проверить, запущен ли SSH - сервер в Linux"}} end

Проверка статуса SSH-сервиса с помощью команды systemctl status ssh

На этом шаге вы научитесь проверять статус SSH-сервиса на своей системе Linux. SSH (Secure Shell) - это протокол, используемый для безопасного подключения к удаленному компьютеру. Это фундаментальный инструмент для системного администрирования и разработки.

В Linux сервисы, такие как SSH, часто управляются с помощью systemd - системного и сервисного менеджера. Команда systemctl используется для взаимодействия с systemd.

Для проверки статуса SSH-сервиса вы будете использовать команду systemctl status, за которой следует имя сервиса, в данном случае ssh.

Если терминал еще не открыт, откройте его. Вы можете найти значок Xfce Terminal слева на рабочем столе.

Введите следующую команду в терминал и нажмите Enter:

systemctl status ssh

Вы увидите вывод, похожий на следующий:

● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since ...
       Docs: man:sshd(8)
             man:ssh(1)
   Main PID: ... (sshd)
      Tasks: 1 (limit: ...)
     Memory: ...
        CPU: ...
     CGroup: /system.slice/ssh.service
             └─... /usr/sbin/sshd -D

...

Разберем важные части вывода:

  • ● ssh.service: Это имя сервиса.
  • Loaded: loaded (...): Указывает, что файл конфигурации сервиса был загружен systemd.
  • Active: active (running): Это самая важная часть. Она сообщает, что SSH-сервис в настоящее время запущен. Если он был остановлен, здесь отобразилось бы что-то вроде inactive (dead).
  • since ...: Показывает, когда сервис был запущен.
  • Main PID: ... (sshd): Идентификатор процесса основного SSH-демона (sshd).

Эта команда является важной для устранения проблем с сетевым подключением или проверки того, что сервис работает как ожидается.

Нажмите Продолжить, чтобы перейти к следующему шагу.

Проверка порта SSH с помощью команды ss -tuln

На этом шаге вы научитесь проверять, какие сетевые порты открыты и прослушиваются на вашей системе. Это важно для понимания, как можно получить доступ к таким сервисам, как SSH.

Команда ss - это утилита для исследования сокетов. Сокеты - это конечные точки для отправки и приема данных по сети. Мы будем использовать ss с несколькими параметрами для фильтрации вывода:

  • -t: Отображать TCP - сокеты. SSH использует протокол TCP.
  • -u: Отображать UDP - сокеты.
  • -l: Отображать прослушивающие сокеты. Это сокеты, которые ожидают входящих подключений.
  • -n: Не разрешать имена сервисов. Это показывает номера портов вместо имен, таких как ssh или http.

Объедините эти параметры, чтобы увидеть все прослушивающие TCP - и UDP - порты с их числовыми значениями.

Введите следующую команду в терминал и нажмите Enter:

ss -tuln

Вы увидите вывод, в котором перечислены различные прослушивающие порты. Найдите строку, связанную с SSH, которая обычно прослушивает порт 22. Вывод может выглядеть примерно так (точный порядок и другие порты могут отличаться):

Netid  State   Recv-Q  Send-Q   Local Address:Port   Peer Address:Port
tcp    LISTEN  0       128            0.0.0.0:22          0.0.0.0:*
tcp    LISTEN  0       128               [::]:22             [::]:*
udp    UNCONN  0       0              127.0.0.53%lo:53          0.0.0.0:*
udp    UNCONN  0       0                    0.0.0.0:68          0.0.0.0:*

В этом выводе:

  • Netid: Сетевой протокол (tcp или udp).
  • State: Состояние сокета (LISTEN означает, что он ожидает подключений).
  • Local Address:Port: Локальный IP - адрес и номер порта, на котором сервис прослушивает. 0.0.0.0 означает, что он прослушивает на всех доступных IPv4 - адресах, а [::] означает, что он прослушивает на всех доступных IPv6 - адресах.
  • Peer Address:Port: Адрес и порт удаленного подключения (для прослушивающих сокетов это *).

Вы должны увидеть строки, указывающие, что TCP - порт 22 находится в состоянии LISTEN. Это подтверждает, что SSH - сервис запущен и готов принимать подключения на стандартном SSH - порту.

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

Нажмите Продолжить, чтобы перейти к следующему шагу.

Просмотр конфигурации SSH с помощью команды cat /etc/ssh/sshd_config

На этом последнем шаге вы рассмотрите главный файл конфигурации SSH - сервера. Этот файл содержит настройки, которые контролируют поведение SSH - сервиса, например, на каком порту он прослушивает, какие пользователи могут подключаться и какие параметры безопасности применяются.

Файл конфигурации SSH - демона (sshd) обычно находится по пути /etc/ssh/sshd_config. Каталог /etc - это место, где хранятся системные файлы конфигурации.

Для просмотра содержимого этого файла вы можете использовать команду cat. cat - это простая команда, которая последовательно читает файлы и выводит их в стандартный вывод (ваш терминал).

Введите следующую команду в терминал и нажмите Enter:

cat /etc/ssh/sshd_config

Вы увидите весь контент файла sshd_config, напечатанный в вашем терминале. Вывод будет содержать много строк, некоторые из которых начинаются с # (это комментарии, которые игнорируются системой), а другие определяют параметры конфигурации.

Найдите строки, которые не закомментированы (не начинаются с #). Некоторые важные директивы, которые вы можете увидеть, включают:

  • Port 22: Это указывает порт, на котором SSH - сервер прослушивает. По умолчанию это порт 22.
  • ListenAddress 0.0.0.0: Указывает IPv4 - адрес, на котором сервер прослушивает.
  • ListenAddress ::: Указывает IPv6 - адрес, на котором сервер прослушивает.
  • PermitRootLogin prohibit - password: Контролирует, может ли пользователь root входить напрямую через SSH.
  • PasswordAuthentication yes: Контролирует, разрешена ли аутентификация по паролю.
## This is the sshd server system configuration file.
## See sshd_config(5) for more information.

## The systemd service file for sshd uses EnvironmentFile to load
## the SSHD_CONFIG environment variable, setting this to /etc/ssh/sshd_config.
## ...

Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key

## Ciphers and keying
#...

## Authentication:
LoginGraceTime 2m
PermitRootLogin prohibit-password
StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#PubkeyAuthentication yes

## Expect .ssh/authorized_keys2 to be disregarded by default in future.
#AuthorizedKeysFile	.ssh/authorized_keys .ssh/authorized_keys2

#IgnoreRhosts yes
#RhostsRSAAuthentication no
#HostbasedAuthentication no
#...

PasswordAuthentication yes
#PermitEmptyPasswords no

ChallengeResponseAuthentication no

#...

Чтение таких файлов конфигурации является важным навыком для понимания и управления сервисами Linux. Хотя в этом лабораторном занятии вы не будете изменять файл, знание о его расположении и способе просмотра его содержимого очень полезно.

Теперь вы успешно проверили статус SSH - сервиса, убедились в том, какой порт он прослушивает, и рассмотрели его файл конфигурации. Вы получили ценный опыт работы с основными командами Linux для управления сервисами и сетевым анализом.

Нажмите Продолжить, чтобы завершить лабораторное занятие и увидеть свой прогресс!

Резюме

В этом лабораторном занятии вы научились проверять, запущен ли SSH - сервер на системе Linux. Вы использовали команду systemctl status ssh для проверки активного состояния сервиса и понимания важных деталей, таких как его загруженное состояние, активное состояние и идентификатор процесса. Эта команда является важной для подтверждения работоспособности SSH - сервиса.

Вы также научились проверять порт SSH с помощью команды ss -tuln и просматривать файл конфигурации SSH, расположенный по пути /etc/ssh/sshd_config, с использованием команды cat. Эти шаги дают дополнительное понимание сетевой конфигурации и настроек SSH - сервера.