SSH сервер

Настройка, программирование, распределённые вычисления

Модераторы: Olej, bellic, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

SSH сервер

Непрочитанное сообщение Olej » 28 сен 2021, 13:30

Это совсем мелочёвка - запустить SSH сервер ... но фокус в том что сервер SSH во многих (всех) дистрибутивах - не устанавливается по дефаулту из пакетного репозитория и, естественно, не запущен:

Код: Выделить всё

olej@Latitude-E6510:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Linuxmint
Description:	Linux Mint 20.2
Release:	20.2
Codename:	uma

Код: Выделить всё

olej@Latitude-E6510:~$ ps -A | grep ssh
   1072 ?        00:00:00 ssh-agent

olej@Latitude-E6510:~$ systemctl status sshd
Unit sshd.service could not be found.
И каждый раз при новой инсталляции это приходится вспоминать, когда SSH понадобится...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: SSH сервер

Непрочитанное сообщение Olej » 28 сен 2021, 13:40

Olej писал(а):
28 сен 2021, 13:30
И каждый раз при новой инсталляции это приходится вспоминать, когда SSH понадобится...
Чтоб долго не вспоминать каким пакетом устанавливается SSH сервер, просто подсмотрю как это я установил на своём основном сервере:

Код: Выделить всё

olej@R420:~$ aptitude search ssh | grep ^i
i  libssh-4 - tiny C SSH library (OpenSSL flavor)
i  libssh-gcrypt-4 - tiny C SSH library (gcrypt flavor)
i A libssh2-1 - клиентская библиотека SSH2
i  openssh-client - клиент протокола SSH, для защищённого удалённого доступа
i  openssh-server - Сервер SSH для бесопасного доступа с удалённых компьютеров
i  openssh-sftp-server - secure shell (SSH) sftp server module, for SFTP access from remote machines
i  ssh - оболочка и сервер SSH (метапакет)
i A ssh-import-id - securely retrieve an SSH public key and install it locally
i A sshfs - клиент файловой системы, основанный на протоколе передачи файлов SSH
i  sshpass - Non-interactive ssh password authentication
И, для сравнения, то что установлено в новой инсталляции:

Код: Выделить всё

olej@Latitude-E6510:~$ aptitude search ssh | grep ^i
i  libssh-4 - tiny C SSH library (OpenSSL flavor)
i  libssh-gcrypt-4 - tiny C SSH library (gcrypt flavor)
i A libssh2-1 - клиентская библиотека SSH2
i  openssh-client - клиент протокола SSH, для защищённого удалённого доступа
i  sshpass - Non-interactive ssh password authentication
P.S. В пакетной системе есть ещё один сервер SSH:

Код: Выделить всё

olej@Latitude-E6510:~$ aptitude search sshd
p   tinysshd                                                         - Tiny SSH server - daemon                                                  
Но это, наверное, только для минимальных систем.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: SSH сервер

Непрочитанное сообщение Olej » 28 сен 2021, 13:49

Olej писал(а):
28 сен 2021, 13:40
И, для сравнения

Код: Выделить всё

olej@Latitude-E6510:~$ sudo apt install openssh-server openssh-sftp-server
[sudo] пароль для olej:       
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  ncurses-term ssh-import-id
Предлагаемые пакеты:
  molly-guard monkeysphere ssh-askpass
Следующие НОВЫЕ пакеты будут установлены:
  ncurses-term openssh-server openssh-sftp-server ssh-import-id
Обновлено 0 пакетов, установлено 4 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 688 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 6.010 kB.
Хотите продолжить? [Д/н] y
Пол:1 http://ubuntu.volia.net/ubuntu-archive focal/main amd64 ncurses-term all 6.2-0ubuntu2 [249 kB]
Пол:2 http://ubuntu.volia.net/ubuntu-archive focal-updates/main amd64 openssh-sftp-server amd64 1:8.2p1-4ubuntu0.3 [51,5 kB]
Пол:3 http://ubuntu.volia.net/ubuntu-archive focal-updates/main amd64 openssh-server amd64 1:8.2p1-4ubuntu0.3 [377 kB]
Пол:4 http://ubuntu.volia.net/ubuntu-archive focal/main amd64 ssh-import-id all 5.10-0ubuntu1 [10,0 kB]
Получено 688 kB за 1с (1.371 kB/s)       
Предварительная настройка пакетов …
Выбор ранее не выбранного пакета ncurses-term.
(Чтение базы данных … на данный момент установлено 362142 файла и каталога.)
Подготовка к распаковке …/ncurses-term_6.2-0ubuntu2_all.deb …
Распаковывается ncurses-term (6.2-0ubuntu2) …
Выбор ранее не выбранного пакета openssh-sftp-server.
Подготовка к распаковке …/openssh-sftp-server_1%3a8.2p1-4ubuntu0.3_amd64.deb …
Распаковывается openssh-sftp-server (1:8.2p1-4ubuntu0.3) …
Выбор ранее не выбранного пакета openssh-server.
Подготовка к распаковке …/openssh-server_1%3a8.2p1-4ubuntu0.3_amd64.deb …
Распаковывается openssh-server (1:8.2p1-4ubuntu0.3) …
Выбор ранее не выбранного пакета ssh-import-id.
Подготовка к распаковке …/ssh-import-id_5.10-0ubuntu1_all.deb …
Распаковывается ssh-import-id (5.10-0ubuntu1) …
Настраивается пакет openssh-sftp-server (1:8.2p1-4ubuntu0.3) …
Настраивается пакет openssh-server (1:8.2p1-4ubuntu0.3) …

Creating config file /etc/ssh/sshd_config with new version
Creating SSH2 RSA key; this may take some time ...
3072 SHA256:fIRwbI+VTiEHxnZNRtwcueD7BfZLoGlVQ6xHsWpYcxk root@Latitude-E6510 (RSA)
Creating SSH2 ECDSA key; this may take some time ...
256 SHA256:FWggTRr4JsfpEbeeA9XoTO257qyuxAwbsE/wA90Fzqk root@Latitude-E6510 (ECDSA)
Creating SSH2 ED25519 key; this maolej@Latitude-E6510:~$ ps -A | grep ssh
   1072 ?        00:00:00 ssh-agent
   4782 pts/1    00:00:00 sshpass
   4783 pts/2    00:00:00 ssh
   4785 ?        00:00:00 ssh-agent
   6781 ?        00:00:00 sshd
olej@Latitude-E6510:~$ systemctl statis sshd
Unknown operation statis.
olej@Latitude-E6510:~$ systemctl status sshd
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-09-28 13:46:12 EEST; 2min 2s ago
       Docs: man:sshd(8)
             man:sshd_config(5)
   Main PID: 6781 (sshd)
      Tasks: 1 (limit: 9426)
     Memory: 1.2M
     CGroup: /system.slice/ssh.service
             └─6781 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups

сен 28 13:46:11 Latitude-E6510 systemd[1]: Starting OpenBSD Secure Shell server...
сен 28 13:46:12 Latitude-E6510 sshd[6781]: Server listening on 0.0.0.0 port 22.
сен 28 13:46:12 Latitude-E6510 sshd[6781]: Server listening on :: port 22.
сен 28 13:46:12 Latitude-E6510 systemd[1]: Started OpenBSD Secure Shell server.
y take some time ...
256 SHA256:v5C8T1PTDtlhCmuBWDFFtHLFpYHG1HJaFiEyhHZfhaE root@Latitude-E6510 (ED25519)
Created symlink /etc/systemd/system/sshd.service → /lib/systemd/system/ssh.service.
Created symlink /etc/systemd/system/multi-user.target.wants/ssh.service → /lib/systemd/system/ssh.service.
rescue-ssh.target is a disabled or a static unit, not starting it.
Настраивается пакет ssh-import-id (5.10-0ubuntu1) …
Attempting to convert /etc/ssh/ssh_import_id
Настраивается пакет ncurses-term (6.2-0ubuntu2) …
Обрабатываются триггеры для systemd (245.4-4ubuntu3.13) …
Обрабатываются триггеры для man-db (2.9.1-1) …
Обрабатываются триггеры для ufw (0.36-6) …
Сервер сразу после инсталляции запущен:

Код: Выделить всё

olej@Latitude-E6510:~$ ps -A | grep ssh
   1072 ?        00:00:00 ssh-agent
   4782 pts/1    00:00:00 sshpass
   4783 pts/2    00:00:00 ssh
   4785 ?        00:00:00 ssh-agent
   6781 ?        00:00:00 sshd

Код: Выделить всё

olej@Latitude-E6510:~$ systemctl status sshd
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-09-28 13:46:12 EEST; 2min 2s ago
       Docs: man:sshd(8)
             man:sshd_config(5)
   Main PID: 6781 (sshd)
      Tasks: 1 (limit: 9426)
     Memory: 1.2M
     CGroup: /system.slice/ssh.service
             └─6781 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups

сен 28 13:46:11 Latitude-E6510 systemd[1]: Starting OpenBSD Secure Shell server...
сен 28 13:46:12 Latitude-E6510 sshd[6781]: Server listening on 0.0.0.0 port 22.
сен 28 13:46:12 Latitude-E6510 sshd[6781]: Server listening on :: port 22.
сен 28 13:46:12 Latitude-E6510 systemd[1]: Started OpenBSD Secure Shell server.
И установлена автозапуск сервера при загрузке системы:

Код: Выделить всё

olej@Latitude-E6510:~$ systemctl is-enabled sshd
enabled

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: SSH сервер

Непрочитанное сообщение Olej » 28 сен 2021, 15:25

Olej писал(а):
28 сен 2021, 13:30
сервер SSH во многих (всех) дистрибутивах - не устанавливается по дефаулту из пакетного репозитория
Посмотрел что там в Fedora (возможно что это ставилось по дефаулту):

Код: Выделить всё

[olga@hp ~]$ lsb_release -a
LSB Version:	:core-4.1-ia32:core-4.1-noarch
Distributor ID:	Fedora
Description:	Fedora release 24 (Twenty Four)
Release:	24
Codename:	TwentyFour

Код: Выделить всё

[olga@hp ~]$ ps -A | grep ssh
  802 ?        00:00:00 sshd
 2836 ?        00:00:00 ssh-agent

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: SSH сервер

Непрочитанное сообщение Olej » 20 сен 2022, 13:14

Olej писал(а):
28 сен 2021, 13:30
фокус в том что сервер SSH во многих (всех) дистрибутивах - не устанавливается по дефаулту из пакетного репозитория
Но в дистрибутивах с инициализацией через systemd (а таких на сегодня большинство) сервер SSH готов к запуску средствами сокетной активации systemd (вот по поводу "готов" я не совсем уверен - это по дефаултной установке, или после моей установки, ранее, openssh-server ... у меня нет чистой инсталляции, но я постараюсь вскорости как-то проверить - для себя я считаю этот факт очень важным).

Я уже запускал не раз сервер SSH сокетной активацией, но делал это вручную ...
xinetd + systemd
Заметки о systemd, часть 6, xinetd

А сейчас время проверить как это установлено в системе с дефаултными конфигурациями...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: SSH сервер

Непрочитанное сообщение Olej » 20 сен 2022, 13:22

Olej писал(а):
20 сен 2022, 13:14
А сейчас время проверить как это установлено в системе с дефаултными конфигурациями...

Код: Выделить всё

olej@compaq:/etc$ lsb_release -a
No LSB modules are available.
Distributor ID:	Linuxmint
Description:	LMDE 5 (elsie)
Release:	5
Codename:	elsie
Проверяю варианты запущенных серверов SSH, и, при наличии, останавливаю для чистоты эксперимента:

Код: Выделить всё

olej@compaq:/usr/lib/systemd/system$ ps -A | grep inetd
olej@compaq:/usr/lib/systemd/system$

Код: Выделить всё

olej@compaq:/usr/lib/systemd/system$ ps -A | grep xinetd
olej@compaq:/usr/lib/systemd/system$

Код: Выделить всё

olej@compaq:/usr/lib/systemd/system$ service sshd status
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-09-20 12:42:29 EEST; 15min ago
       Docs: man:sshd(8)
             man:sshd_config(5)
    Process: 570 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
   Main PID: 608 (sshd)
      Tasks: 1 (limit: 6900)
     Memory: 3.3M
        CPU: 64ms
     CGroup: /system.slice/ssh.service
             └─608 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups

сен 20 12:42:29 compaq systemd[1]: Starting OpenBSD Secure Shell server...
сен 20 12:42:29 compaq sshd[608]: Server listening on 0.0.0.0 port 22.
сен 20 12:42:29 compaq sshd[608]: Server listening on :: port 22.
сен 20 12:42:29 compaq systemd[1]: Started OpenBSD Secure Shell server.

Код: Выделить всё

olej@compaq:/usr/lib/systemd/system$ sudo service sshd stop

Код: Выделить всё

olej@compaq:/usr/lib/systemd/system$ service sshd status
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: inactive (dead) since Tue 2022-09-20 12:59:44 EEST; 3s ago
       Docs: man:sshd(8)
             man:sshd_config(5)
    Process: 570 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
    Process: 608 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS (code=exited, status=0/SUCCESS)
   Main PID: 608 (code=exited, status=0/SUCCESS)
        CPU: 65ms

сен 20 12:42:29 compaq systemd[1]: Starting OpenBSD Secure Shell server...
сен 20 12:42:29 compaq sshd[608]: Server listening on 0.0.0.0 port 22.
сен 20 12:42:29 compaq sshd[608]: Server listening on :: port 22.
сен 20 12:42:29 compaq systemd[1]: Started OpenBSD Secure Shell server.
сен 20 12:59:44 compaq sshd[608]: Received signal 15; terminating.
сен 20 12:59:44 compaq systemd[1]: Stopping OpenBSD Secure Shell server...
сен 20 12:59:44 compaq systemd[1]: ssh.service: Succeeded.
сен 20 12:59:44 compaq systemd[1]: Stopped OpenBSD Secure Shell server.

Код: Выделить всё

olej@compaq:/usr/lib/systemd/system$ ps -A | grep ssh
   1023 ?        00:00:00 ssh-agent
Всё остановлено. Теперь можно запустить то же, но через сокетную активацию.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: SSH сервер

Непрочитанное сообщение Olej » 20 сен 2022, 13:27

Olej писал(а):
20 сен 2022, 13:22
Теперь можно запустить то же, но через сокетную активацию.
В системе довольно много сервисов с сокетной активацией:

Код: Выделить всё

olej@compaq:/usr/lib/systemd/system$ ls -l *.socket
-rw-r--r-- 1 root root  115 авг 19  2019 acpid.socket
-rw-r--r-- 1 root root  870 авг  8 12:27 avahi-daemon.socket
-rw-r--r-- 1 root root  132 мая 23 23:03 cups.socket
-rw-r--r-- 1 root root  102 фев 21  2021 dbus.socket
-rw-r--r-- 1 root root  248 фев 22  2021 dm-event.socket
-rw-r--r-- 1 root root  239 фев 22  2021 lvm2-lvmpolld.socket
-rw-r--r-- 1 root root  133 авг 15  2018 saned.socket
-rw-r--r-- 1 root root  216 июл  2 01:37 ssh.socket
-rw-r--r-- 1 root root 1415 фев  2  2021 syslog.socket
-rw-r--r-- 1 root root  545 фев  2  2021 systemd-coredump.socket
-rw-r--r-- 1 root root  540 авг  7 16:25 systemd-fsckd.socket
-rw-r--r-- 1 root root  554 фев  2  2021 systemd-initctl.socket
-rw-r--r-- 1 root root  655 фев  2  2021 systemd-journald-audit.socket
-rw-r--r-- 1 root root 1154 фев  2  2021 systemd-journald-dev-log.socket
-rw-r--r-- 1 root root  906 фев  2  2021 systemd-journald.socket
-rw-r--r-- 1 root root  746 фев  2  2021 systemd-journald@.socket
-rw-r--r-- 1 root root  605 фев  2  2021 systemd-journald-varlink@.socket
-rw-r--r-- 1 root root  640 фев  2  2021 systemd-networkd.socket
-rw-r--r-- 1 root root  734 фев  2  2021 systemd-rfkill.socket
-rw-r--r-- 1 root root  643 фев  2  2021 systemd-udevd-control.socket
-rw-r--r-- 1 root root  618 фев  2  2021 systemd-udevd-kernel.socket
-rw-r--r-- 1 root root  126 янв 20  2022 uuidd.socket
Для SSH вот дефаултная конфигурация (я не создавал и ничего не правил в этом файле):

Код: Выделить всё

olej@compaq:/usr/lib/systemd/system$ cat ssh.socket 
[Unit]
Description=OpenBSD Secure Shell server socket
Before=ssh.service
Conflicts=ssh.service
ConditionPathExists=!/etc/ssh/sshd_not_to_be_run

[Socket]
ListenStream=22
Accept=yes

[Install]
WantedBy=sockets.target
И вот его запуск:

Код: Выделить всё

olej@compaq:/usr/lib/systemd/system$ sudo service ssh.socket start
Failed to start ssh.socket.service: Unit ssh.socket.service not found.
Это любопытно: старая команда управления сервисами (вообще то работающая с сервисами и sustemd) не умеет (тупо не понимает) работать с сокетными сервисами!

Код: Выделить всё

olej@compaq:/usr/lib/systemd/system$ sudo systemctl start ssh.socket

Код: Выделить всё

olej@compaq:/usr/lib/systemd/system$ sudo systemctl status ssh.socket
● ssh.socket - OpenBSD Secure Shell server socket
     Loaded: loaded (/lib/systemd/system/ssh.socket; disabled; vendor preset: enabled)
     Active: active (listening) since Tue 2022-09-20 13:02:33 EEST; 7s ago
     Listen: [::]:22 (Stream)
   Accepted: 0; Connected: 0;
      Tasks: 0 (limit: 6900)
     Memory: 4.0K
        CPU: 1ms
     CGroup: /system.slice/ssh.socket

сен 20 13:02:33 compaq systemd[1]: Listening on OpenBSD Secure Shell server socket.

Код: Выделить всё

olej@compaq:/usr/lib/systemd/system$ systemctl --full | grep ssh
  ssh@1-::1:22-::1:36792.service                                                                   loaded active running   OpenBSD Secure Shell server per-connection daemon ([::1]:36792)
  system-ssh.slice                                                                                 loaded active active    system-ssh.slice
  ssh.socket                                                                                       loaded active listening OpenBSD Secure Shell server socket

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: SSH сервер

Непрочитанное сообщение Olej » 20 сен 2022, 13:33

Olej писал(а):
20 сен 2022, 13:27
И вот его запуск:
Поехали...
Проверяю что никакого sshd нет в системе работающего:

Код: Выделить всё

olej@compaq:/usr/lib/systemd/system$ ps -A | grep ssh
   1023 ?        00:00:00 ssh-agent
   3252 ?        00:00:00 ssh-agent
Локально...

Код: Выделить всё

olej@compaq:~$ ssh olej@localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:Kri7CYmZQXtrFkjmPpE3VQfnuaYaUG6HcTnFHCNGdXg.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
olej@localhost's password: 
Linux compaq 5.10.0-18-amd64 #1 SMP Debian 5.10.140-1 (2022-09-02) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Sep 15 18:50:59 2022 from 192.168.1.14

Код: Выделить всё

olej@compaq:~$ who
olej     tty7         2022-09-20 12:42 (:0)
olej     pts/5        2022-09-20 13:03 (::1)
Всё совсем по-другому:

Код: Выделить всё

olej@compaq:/usr/lib/systemd/system$ ps -A | grep ssh
   1023 ?        00:00:00 ssh-agent
   3252 ?        00:00:00 ssh-agent
   3447 pts/4    00:00:00 ssh
   3449 ?        00:00:00 sshd
   3457 ?        00:00:00 sshd

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: SSH сервер

Непрочитанное сообщение Olej » 20 сен 2022, 13:43

Olej писал(а):
20 сен 2022, 13:33
Всё совсем по-другому:
Ну и окончательно ... "вишенка на торте" - чтобы этот сокетный сервис подымалсь при перезагрузке:

Код: Выделить всё

olej@compaq:/usr/lib/systemd/system$ sudo systemctl is-enabled ssh.socket
disabled

Код: Выделить всё

olej@compaq:/usr/lib/systemd/system$ sudo systemctl enable ssh.socket
Created symlink /etc/systemd/system/sockets.target.wants/ssh.socket → /lib/systemd/system/ssh.socket.

Код: Выделить всё

olej@compaq:/usr/lib/systemd/system$ sudo systemctl is-enabled ssh.socket
enabled

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 21 гость