Как установить и настроить SSH ⋆ ALexHost SRL

Проверьте свои навыки на всех наших услугах хостинга и получите скидку 15%!.

Используйте код при регистрации:

Skills
17.12.2024

Как установить и настроить SSH

SSH (Secure Shell) – это протокол, используемый для безопасного подключения к удаленным системам, выполнения команд и передачи данных. Он предоставляет системным администраторам, разработчикам и пользователям безопасный способ удаленного управления серверами и другими устройствами с помощью зашифрованных соединений. Установка и настройка SSH необходима для безопасного доступа к серверам, будь то системное администрирование, удаленная работа или разработка.

В этой статье мы расскажем вам о том, как установить и настроить SSH в Linux, рассмотрим основы, параметры конфигурации и рекомендации по безопасности.


Что такое SSH?

SSH расшифровывается как Secure Shell и позволяет пользователям безопасно подключаться к удаленной системе через интерфейс командной строки. Протокол шифрует данные между клиентом и сервером, что делает его безопасным методом связи, особенно для доступа к серверам через незащищенную сеть, например Интернет.

По умолчанию SSH работает через порт 22 и может использоваться для:

  • Удаленного входа на серверы
  • Безопасная передача файлов (с помощью SCP или SFTP)
  • Удаленное выполнение команд
  • Переадресация портов и туннелирование

Шаг 1: Установка SSH

Большинство дистрибутивов Linux поставляются с предустановленным SSH, но если он не установлен, вы можете легко установить его с помощью менеджера пакетов для вашего дистрибутива.

Для Ubuntu/Debian:

sudo apt update sudo apt install openssh-server

Для CentOS/RHEL:

sudo yum install openssh-server

Для Fedora:

sudo dnf install openssh-server

Для Arch Linux:

sudo pacman -S openssh

После установки у вас будут установлены сервер и клиент OpenSSH, позволяющие запускать SSH-сервер и подключаться к другим SSH-серверам.


Шаг 2: Запуск и включение службы SSH

После установки необходимо запустить службу SSH (также известную как sshd – демон SSH) и включить ее запуск при старте системы.

Запуск службы SSH:

sudo systemctl start ssh

Включение запуска SSH при загрузке:

sudo systemctl enable ssh

Вы можете проверить, правильно ли работает SSH, набрав:

sudo systemctl status ssh

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


Шаг 3: Базовая конфигурация SSH

Поведение SSH контролируется конфигурационным файлом, расположенным по адресу:

/etc/ssh/sshd_config

Вы можете редактировать этот файл, чтобы изменить настройки SSH, например, изменить порт по умолчанию, отключить вход root или настроить аутентификацию на основе ключей.

Чтобы отредактировать файл, используйте текстовый редактор, например nano или vim:

sudo nano /etc/ssh/sshd_config

Некоторые распространенные изменения конфигурации включают:

1. Изменение порта SSH по умолчанию

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

Найдите следующую строку в файле конфигурации:

#Port 22

Откомментируйте ее и измените номер порта:

Порт 2222

После сохранения файла перезапустите службу SSH, чтобы применить изменения:

sudo systemctl restart ssh

Обязательно обновите правила брандмауэра, чтобы разрешить соединения на новом порту.

2. Отключение входа в систему Root

Разрешение входа root через SSH представляет собой риск для безопасности. Чтобы предотвратить это, найдите следующую строку в файле конфигурации:

PermitRootLogin yes

Измените ее на:

PermitRootLogin no

Это предотвратит прямой доступ к root через SSH. Пользователи по-прежнему могут входить в систему под обычной учетной записью, а затем переключаться на root с помощью sudo или su.

3. Включите аутентификацию на основе ключей

Аутентификация на основе ключей SSH – это более безопасный метод, чем использование паролей. Он включает в себя создание пары ключей SSH (открытый и закрытый ключи) и использование закрытого ключа для аутентификации.

Чтобы включить аутентификацию на основе ключей, найдите следующие строки и убедитесь, что они имеют значение yes:

PubkeyAuthentication yes PasswordAuthentication no

Это отключает вход по паролю и разрешает доступ к SSH только через аутентификацию по ключу.


Шаг 4: Генерация ключей SSH (аутентификация на основе ключей)

Пары ключей SSH обеспечивают безопасный способ входа в систему без пароля. Вот как сгенерировать и настроить ключи SSH:

Шаг 1: Генерация пары ключей SSH

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

ssh-keygen -t rsa -b 4096

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

В результате будут созданы два файла:

  • ~/.ssh/id_rsa: ваш закрытый ключ (храните его в безопасности и не передавайте).
  • ~/.ssh/id_rsa.pub: Ваш открытый ключ (им можно поделиться и добавить на удаленные серверы).

Шаг 2: Скопируйте открытый ключ на сервер

Чтобы использовать ключ для входа по SSH, скопируйте открытый ключ на удаленный сервер, к которому вы хотите получить доступ. Это можно сделать с помощью команды ssh-copy-id:

ssh-copy-id username@remote_host

Замените username на имя пользователя вашего удаленного сервера, а remote_host – на IP-адрес или имя хоста сервера.

Это скопирует ваш открытый ключ на сервер и добавит его в файл ~/.ssh/authorized_keys, что позволит вам входить в систему без пароля.

Шаг 3: Вход в систему с помощью ключа SSH

Теперь вы можете войти на удаленный сервер, используя свой закрытый ключ:

ssh username@remote_host

Если вы задали собственный порт, укажите его с помощью опции -p:

ssh -p 2222 username@remote_host

Шаг 5: Защита конфигурации SSH

После настройки SSH важно следовать лучшим практикам безопасности, чтобы гарантировать, что ваш сервер защищен от несанкционированного доступа.

1. Используйте надежные пароли (при использовании парольной аутентификации)

Если вы не используете аутентификацию на основе ключей, убедитесь, что все учетные записи пользователей используют надежные и сложные пароли.

2. Используйте брандмауэр

Убедитесь, что брандмауэр вашего сервера разрешает трафик только на используемом порту SSH. Например, если вы изменили SSH на порт 2222, разрешите трафик на этом порту с помощью ufw (на Ubuntu/Debian) или firewalld (на CentOS/RHEL).

sudo ufw allow 2222/tcp sudo ufw enable

3. Ограничение доступа по SSH

Ограничьте доступ к SSH определенными IP-адресами или диапазонами, настроив брандмауэр или используя /etc/hosts.allow и /etc/hosts.deny.


Шаг 6: Тестирование и устранение неполадок SSH

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

Общие советы по устранению неполадок SSH:

  1. Проверьте настройки брандмауэра: Убедитесь, что брандмауэр не блокирует порт SSH.
  2. Проверьте состояние службы SSH: Убедитесь, что служба SSH запущена, с помощью systemctl status ssh.
  3. Проверьте конфигурацию: Дважды проверьте файл /etc/ssh/sshd_config на наличие неверных конфигураций.
  4. Используйте режим Verbose для отладки: Если возникли проблемы, используйте опцию -v при подключении, чтобы увидеть подробный вывод:
ssh -v username@remote_host

Заключение

Установка и настройка SSH – это фундаментальный навык для любого администратора или пользователя Linux, которому необходимо безопасно управлять удаленными системами. Следуя этому руководству, вы сможете установить SSH, настроить его для безопасного доступа и применить лучшие практики для защиты вашего сервера от несанкционированного доступа. После настройки SSH станет мощным инструментом для удаленного управления, автоматизации и безопасной связи между системами.

Проверьте свои навыки на всех наших услугах хостинга и получите скидку 15%!.

Используйте код при регистрации:

Skills