Доступ по SSH: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Метка: ручная отмена
 
(не показано 10 промежуточных версий 3 участников)
Строка 1: Строка 1:
{{Note|Обратите внимение, что это не официальная документация, а попытка начинающего админа объяснить материал начинающим админам. Официальная и более подробная [[SSH|'''документация здесь''']].}}
{{note|Проверено на Starterkit P10 Mate (весенний) 25.07.2022}}
С помощью '''[[SSH]]-сервера''' можно удаленно управлять сервером через консоль (<nowiki>ssh://-соединение</nowiki>) и передавать файлы (sftp-сервер).
С помощью '''[[SSH]]-сервера''' можно удаленно управлять сервером через консоль (<nowiki>ssh://-соединение</nowiki>) и передавать файлы (sftp-сервер).


Строка 14: Строка 16:
Потом, если что-то пошло не так, удаляем измененный и восстанавливаем исходный:
Потом, если что-то пошло не так, удаляем измененный и восстанавливаем исходный:
  # cd /etc/openssh
  # cd /etc/openssh
  # rm sshd config
  # rm sshd_config
  # cp -a sshd_config.bak sshd_config
  # cp -a sshd_config.bak sshd_config
  # service sshd reload
  # service sshd reload
Строка 27: Строка 29:
Редактируем следующие значения:
Редактируем следующие значения:


  Port 22 //раскоментируем строчку
*Сетевой порт соединения. Раскомментируем эту строчку и, если нужно, можем изменить значение.
<...>
  Port 22
  MaxSessions 10 //раскомментируем строчку
*Максимальное количество открытых сеансов, разрешённых для одного сетевого подключения. (раскомментируем строчку)
<...>
  MaxSessions 3
  PubkeyAuthentication yes //раскомментируем строчку
*Параметр PubkeyAuthentication определяет, разрешена ли аутентификация на основе публичного ключа. (раскомментируем строчку)
  PubkeyAcceptedKeyTypes ssh-ed25519-cert-v01@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa-cert-v01@openssh.com,ssh-rsa,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384,ecdsa-sha2-nistp256 //раскомментируем строчку
  PubkeyAuthentication yes
<...>
*Параметр PubkeyAcceptedKeyTypes определяет типы ключей, которые будут использоваться для аутентификации по открытому ключу (раскомментируем строчку)
  PasswordAuthentication yes //раскомментируем строчку
  PubkeyAcceptedKeyTypes ssh-ed25519-cert-v01@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa-cert-v01@openssh.com,ssh-rsa,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384,ecdsa-sha2-nistp256
  PermitEmptyPasswords no //раскомментируем строчку
*Параметр PasswordAuthentication разрешает доступ по паролю. Чтобы выключить и разрешить доступ только по ключу, поставьте no.
  ChallengeResponseAuthentication yes //раскомментируем строчку
  PasswordAuthentication yes
<...>
*Параметр PermitEmptyPasswords позволяет использовать пустые пароли. Это не безопасно!
  ClientAliveInterval 300 //раскомментируем строчку и меняем значение
  PermitEmptyPasswords no
  ClientAliveCountMax 3 //раскомментируем строчку
*Параметр ChallengeResponseAuthentication определяет, разрешается ли безпарольная аутентификация «вызов-ответ».
<...>
  ChallengeResponseAuthentication yes
  Subsystem sftp /usr/lib/openssh/sftp-server //раскомментируем строчку
*Параметр ClientAliveInterval задает интервал (в секундах), с которым сервер отправляет клиенту сообщение keepalive. Keepalive — это сигнал, отправляемый для проверки активности клиента и его возможности отвечать. Если клиент не отвечает на сообщение keepalive в течение заданного интервала, сервер считает, что клиент больше недоступен.
  <...>
  ClientAliveInterval 300
  Match User petr //тут пишем пользователя, под которым будем заходить
*Параметр ClientAliveCountMax определяет количество keepalive-сообщений, которые могут быть отправлены клиенту без получения ответа, прежде чем сервер завершит соединение.
X11Forwarding yes //раскомментируем строчку
  ClientAliveCountMax 3
AllowTcpForwarding yes //раскомментируем строчку
*Параметр Subsystem определяет и настраивает внешнюю подсистему. В данном примере sftp.
PermitTTY no //раскомментируем строчку
  Subsystem sftp /usr/lib/openssh/sftp-server
 
*Опция Match позволяет контролировать, кто и при каких обстоятельствах может входить в систему, определяя шаблон критериев, согласно которому будут применяться или не применяться остальные параметры
  Match User petr
*Опция X11Forwarding определяет, разрешено ли туннелирование X11.
X11Forwarding yes
*Опция AllowTcpForwarding включает или выключает переадресацию портов
AllowTcpForwarding yes
*Опция PermitTTY указывает, разрешено ли выделение pty - pseudo-tty - устройство которое имеет функции физического терминала, фактически не будучи им. Например Xterm.
PermitTTY yes
Сохраняем файл и перезапускаем сервис:
Сохраняем файл и перезапускаем сервис:
  # service sshd reload
  # systemctl restart sshd
 
Подключение:
 
Вводим в консоли '''ssh user@ip''':
$ ssh petr@10.0.2.6
Система запросит разрешение на принятие SSH-ключа и ввод пароля. После этого у Вас будет консоль подключенного сервера.
===Обмен файлами===
===Обмен файлами===
Обмен файлами с сервером будет происходить по протоколу SSH.
Обмен файлами с сервером будет происходить по протоколу SSH.
Строка 55: Строка 72:
  # mkdir /home/files
  # mkdir /home/files
Этот же каталог прописываем в ChrootDirectory.
Этот же каталог прописываем в ChrootDirectory.
ChrootDirectory /home/files


Даем себе полные права:
Даем себе полные права:

Текущая версия от 00:00, 27 ноября 2024

Примечание: Обратите внимение, что это не официальная документация, а попытка начинающего админа объяснить материал начинающим админам. Официальная и более подробная документация здесь.
Примечание: Проверено на Starterkit P10 Mate (весенний) 25.07.2022

С помощью SSH-сервера можно удаленно управлять сервером через консоль (ssh://-соединение) и передавать файлы (sftp-сервер).

В данной статье будут рассмотрены настройка доступа к терминалу (TODO: надо описать. В данный момент настройка терминального доступа не описана) и файлам через SSH.

Предварительный бэкап

На сервере переключаемся в режим суперпользователя:

$ su -

Делаем на всякий случай бэкап конфига:

# cd /etc/openssh
# cp -a sshd_config sshd_config.bak

И правим конфиг файл:

# cd /etc/openssh
# mcedit sshd_config

Потом, если что-то пошло не так, удаляем измененный и восстанавливаем исходный:

# cd /etc/openssh
# rm sshd_config
# cp -a sshd_config.bak sshd_config
# service sshd reload

В любом случае при изменениях этого файла стоит обязательно:

  1. держать уже открытую рутовую сессию через достаточно надёжное соединение;
  2. перезапустить sshd;
  3. попытаться подключиться ещё одной рутовой сессией по ключу (либо пользовательской с поднятием привилегий, что несколько менее предпочтительно),

чтобы убедиться в том, что удалённый доступ к системе всё ещё функционирует.

Доступ по SSH через сеть

Редактируем следующие значения:

  • Сетевой порт соединения. Раскомментируем эту строчку и, если нужно, можем изменить значение.
Port 22
  • Максимальное количество открытых сеансов, разрешённых для одного сетевого подключения. (раскомментируем строчку)
MaxSessions 3
  • Параметр PubkeyAuthentication определяет, разрешена ли аутентификация на основе публичного ключа. (раскомментируем строчку)
PubkeyAuthentication yes
  • Параметр PubkeyAcceptedKeyTypes определяет типы ключей, которые будут использоваться для аутентификации по открытому ключу (раскомментируем строчку)
PubkeyAcceptedKeyTypes ssh-ed25519-cert-v01@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa-cert-v01@openssh.com,ssh-rsa,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384,ecdsa-sha2-nistp256
  • Параметр PasswordAuthentication разрешает доступ по паролю. Чтобы выключить и разрешить доступ только по ключу, поставьте no.
PasswordAuthentication yes
  • Параметр PermitEmptyPasswords позволяет использовать пустые пароли. Это не безопасно!
PermitEmptyPasswords no
  • Параметр ChallengeResponseAuthentication определяет, разрешается ли безпарольная аутентификация «вызов-ответ».
ChallengeResponseAuthentication yes
  • Параметр ClientAliveInterval задает интервал (в секундах), с которым сервер отправляет клиенту сообщение keepalive. Keepalive — это сигнал, отправляемый для проверки активности клиента и его возможности отвечать. Если клиент не отвечает на сообщение keepalive в течение заданного интервала, сервер считает, что клиент больше недоступен.
ClientAliveInterval 300
  • Параметр ClientAliveCountMax определяет количество keepalive-сообщений, которые могут быть отправлены клиенту без получения ответа, прежде чем сервер завершит соединение.
ClientAliveCountMax 3
  • Параметр Subsystem определяет и настраивает внешнюю подсистему. В данном примере sftp.
Subsystem	sftp /usr/lib/openssh/sftp-server
  • Опция Match позволяет контролировать, кто и при каких обстоятельствах может входить в систему, определяя шаблон критериев, согласно которому будут применяться или не применяться остальные параметры
Match User petr
  • Опция X11Forwarding определяет, разрешено ли туннелирование X11.
X11Forwarding yes
  • Опция AllowTcpForwarding включает или выключает переадресацию портов
AllowTcpForwarding yes
  • Опция PermitTTY указывает, разрешено ли выделение pty - pseudo-tty - устройство которое имеет функции физического терминала, фактически не будучи им. Например Xterm.
PermitTTY yes

Сохраняем файл и перезапускаем сервис:

# systemctl restart sshd

Подключение:

Вводим в консоли ssh user@ip:

$ ssh petr@10.0.2.6 

Система запросит разрешение на принятие SSH-ключа и ввод пароля. После этого у Вас будет консоль подключенного сервера.

Обмен файлами

Обмен файлами с сервером будет происходить по протоколу SSH.

Создаем каталог:

# mkdir /home/files

Этот же каталог прописываем в ChrootDirectory.

ChrootDirectory /home/files

Даем себе полные права:

# chown petr:petr /home/files
# chmod -R u+rwx /home/files

Подключаем его на Workstation:

  • Открываем Caja
  • Файл > Соединиться с сервером:
    • IP
    • Тип: SSH
    • Папка: /home/files
    • Имя пользователя: petr (учетка на сервере, которой мы дали права)
    • Пароль: (соответствующий)
    • Можно поставить галочку "Добавить закладку"

Примечания