SSH (Secure Shell) — это защищённый сетевой протокол, который позволяет удалённо получать доступ к серверам Linux, в том числе к системам Fedora, и управлять ими. Он обеспечивает зашифрованную связь между клиентом и сервером, гарантируя безопасную передачу конфиденциальных данных по сети. SSH широко используется для удалённого администрирования системы, передачи файлов и туннелирования. В Fedora 40 или 39 SSH можно легко настроить для обеспечения безопасного удалённого доступа к вашей системе.
В этом руководстве вы узнаете, как установить, включить и настроить SSH в Fedora 40 или 39 с помощью терминала командной строки. Кроме того, в нём описаны основные команды SSH и советы по безопасной настройке.
Обновление пакетов Fedora перед установкой SSH
Обновление системных пакетов Fedora перед установкой SSH имеет решающее значение для поддержания совместимости системы и предотвращения конфликтов. Это гарантирует, что все компоненты вашей системы имеют последнюю версию.
Выполните следующую команду в терминале, чтобы обновить ваши пакеты:
sudo dnf upgrade --refresh
Эта команда обновляет метаданные репозитория и пакеты, обеспечивая актуальность вашей системы.
Установка SSH с помощью команды DNF
Перед установкой рекомендуется проверить, установлен ли сервер OpenSSH в вашей системе Fedora. Используйте эту команду для поиска пакета сервера OpenSSH:
rpm -qa | grep openssh-server
Если эта команда вернёт результат, сервер OpenSSH установлен. Если результат не будет получен, вам нужно установить его.
Используйте эту команду для установки сервера OpenSSH:
sudo dnf install openssh-server
Включение и запуск службы SSHD
После установки сервера OpenSSH следующим шагом будет включение службы SSHD. Это действие гарантирует, что демон SSH автоматически запускается при каждой загрузке системы, обеспечивая постоянный удалённый доступ.
Включите SSHD с помощью этой команды:
sudo systemctl enable sshd
После включения запустите SSH-сервер с помощью команды:
sudo systemctl start sshd
Чтобы убедиться, что SSH-сервер работает правильно, вы можете проверить его состояние:
systemctl status sshd
Использование SSH для подключения к удаленной системе
Подключение к удаленному серверу с аутентификацией по паролю
После настройки SSH вы можете подключиться к удалённому серверу. Для аутентификации по паролю используйте следующий синтаксис:
ssh username@remote_server
Замените username на своё настоящее имя пользователя, а remote_server — на IP-адрес или имя хоста сервера. После выполнения этой команды вам будет предложено ввести пароль для аутентификации.
Подключение к удаленному серверу с аутентификацией по открытому ключу
Для повышения безопасности SSH также поддерживает аутентификацию по открытому ключу. Этот метод более безопасен, чем аутентификация по паролю, поскольку использует криптографические ключи. Выполните команду:
ssh -i /path/to/private_key username@remote_server
Здесь замените /path/to/private_key на путь к файлу закрытого ключа, username на своё имя пользователя, а remote_server на IP-адрес или имя хоста сервера. Этот метод позволяет использовать закрытый ключ для аутентификации без ввода пароля.
Указание другого порта
По умолчанию SSH использует для подключения порт 22. Однако если удалённый сервер прослушивает другой порт, укажите его с помощью параметра -p:
ssh -p 2222 username@remote_server
Замените 2222 на фактический номер порта, используемого удалённым сервером.
Не забываем заменить username@remote_server аналогично примерам выше.
Передача файлов с помощью SCP
SCP (протокол безопасной передачи файлов) — это безопасный метод передачи файлов между системами по протоколу SSH. Чтобы скопировать файл из локальной системы на удалённый сервер, используйте следующую команду:
scp /path/to/local/file username@remote_server:/path/to/remote/directory
Замените /path/to/local/file на путь к локальному файлу, имя_пользователя на ваше имя пользователя, remote_server на IP-адрес или имя хоста сервера, а /path/to/remote/directory на целевой каталог на удалённом сервере.
Эта команда безопасно копирует файл в указанный каталог на удалённом сервере.
Примеры настройки SSH на Fedora Linux
Отключение аутентификации GSSAPI
Рассмотрите возможность отключения аутентификации GSSAPI для повышения производительности, так как она может замедлять время подключения по SSH.
Для этого добавьте следующую строку в файл /etc/ssh/sshd_config:
GSSAPIAuthentication no
Эта модификация предотвращает аутентификацию GSSAPI, что может сократить задержки при настройке SSH-соединения.
Изменение времени ожидания сеанса SSH
Чтобы управлять временем ожидания сеанса SSH, добавьте эти строки в файл конфигурации SSH:
ClientAliveInterval 300
ClientAliveCountMax 2
Эта конфигурация отправляет сообщение о состоянии каждые 300 секунд (5 минут) и завершает сеанс, если после отправки двух сообщений не поступает ответ. Это помогает поддерживать активные сеансы и закрывать неактивные.
Отключение входа с правами Root
Отключение входа в систему с правами root — важнейшая мера безопасности для защиты от атак методом перебора. Добавьте эту строку в свою конфигурацию SSH:
PermitRootLogin no
Этот параметр обеспечивает отключение удалённого входа в систему с правами администратора, что значительно повышает безопасность вашей системы.
Использование аутентификации с открытым ключом
Аутентификация с помощью открытого ключа — более безопасная альтернатива методам, основанным на паролях. Сначала создайте пару ключей SSH:
ssh-keygen -t rsa -b 4096
Затем перенесите свой открытый ключ на удаленный сервер:
ssh-copy-id user@remote_server
Замените user на своё имя пользователя, а remote_server на IP-адрес или имя хоста сервера.
После копирования ключа включите аутентификацию по открытому ключу в конфигурации SSH:
PubkeyAuthentication yes
Ограничить доступ по SSH определенным пользователям или группам
Чтобы ограничить доступ SSH для определённых пользователей или групп, добавьте эти строки в файл конфигурации SSH:
AllowUsers user1 user2
AllowGroups group1 group2
Замените user1 user2 на разрешённые имена пользователей, а group1 group2 — на разрешённые названия групп. Это ограничение повышает безопасность за счёт ограничения доступа.
Изменение порта SSH
Изменение порта SSH по умолчанию (22) может сократить количество попыток несанкционированного доступа. Чтобы изменить порт SSH, добавьте эту строку в файл конфигурации SSH:
Port <port_number>
Замените <port_number> на выбранный вами порт, желательно в диапазоне от 1024 до 65535, чтобы его не использовал другой сервис. Этот шаг обеспечивает дополнительный уровень безопасности, скрывая порт SSH от автоматических атак.
Безопасность SSH с помощью Firewalld
Разрешение вашего IP-адреса в Firewalld
Обеспечение бесперебойного доступа имеет решающее значение при работе с VPS на базе Fedora или удалённого сервера. Прежде чем настраивать параметры Firewalld, необходимо разрешить доступ по IP-адресу, особенно для удалённого подключения к системе. Если этого не сделать, можно потерять доступ к серверу после внесения изменений в брандмауэр.
(Статья об установке Firewald на Fedora с нуля)
Чтобы разрешить использование вашего конкретного IP-адреса в Firewalld, выполните следующую команду:
sudo firewall-cmd --permanent --add-source=<your_ip_address>
Замените <your_ip_address> на фактический IP-адрес, который вы используете в данный момент. Этот шаг очень важен для обеспечения бесперебойного доступа.
Интеграция SSH-сервиса в Firewalld
Как только ваш IP-адрес будет разрешён, добавьте службу SSH в Firewalld. Это действие обеспечит разрешение SSH-соединений через брандмауэр. Используйте следующую команду:
sudo firewall-cmd --add-service=ssh --permanent
Эта команда добавляет SSH в список служб, которые Firewalld будет пропускать через брандмауэр.
Активация обновленных настроек брандмауэра
После внесения необходимых изменений примените их, перезагрузив Firewalld:
sudo firewall-cmd --reload
Перезагрузка Firewalld активирует новые настройки, не прерывая текущее подключение к сети.
Проверка службы SSH в Firewalld
Чтобы убедиться, что SSH правильно настроен и разрешён в Firewalld, выполните команду:
sudo firewall-cmd --list-services | grep ssh
Эта команда проверяет список служб, разрешённых Firewalld, и подтверждает наличие SSH, проверяя, что ваши удалённые сеансы SSH безопасны и доступны.
Заключение
После успешной установки и настройки SSH в вашей системе Fedora вы сможете безопасно и уверенно управлять своим сервером удалённо. Регулярное обновление конфигурации SSH и следование рекомендациям помогут поддерживать безопасную и эффективную среду удалённого управления. Независимо от того, получаете ли вы доступ к своей системе с другого компьютера в вашей сети или управляете сервером в центре обработки данных, SSH предоставляет необходимые инструменты для безопасного удалённого администрирования в Fedora.