Secure Shell (SSH) — это важный инструмент для удалённого администрирования системы, позволяющий пользователям безопасно подключаться к серверам Linux и управлять ими. Если вы используете последнюю версию Fedora, настроить SSH очень просто. В этом руководстве вы найдёте пошаговую инструкцию по настройке SSH в Fedora Linux 42.
Зачем использовать SSH?
SSH обеспечивает безопасную зашифрованную связь между системами по незащищённой сети. Он заменяет старые небезопасные протоколы, такие как Telnet и FTP.
С помощью SSH вы можете:
- Удаленное управление серверами Fedora.
- Безопасная передача файлов (с помощью
scp
илиsftp
). - Автоматизируйте административные задачи.
Шаги по настройке SSH в Fedora Linux 42
Настройка SSH в системе Fedora включает в себя следующие шаги:
1. Установите сервер OpenSSH
В Fedora обычно предустановлен OpenSSH. Однако если он отсутствует, установите его с помощью:
sudo dnf install -y openssh-server
2. Включите и запустите службу SSH
После установки запустите службу SSH и включите ее запуск при загрузке:
sudo systemctl enable --now sshd
Чтобы убедиться, что SSH запущен:
systemctl status sshd
Вы должны увидеть active (running)
в выходных данных зеленым цветом.
● sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; preset: disabled) Drop-In: /usr/lib/systemd/system/service.d └─10-timeout-abort.conf, 50-keep-warm.conf Active: active (running) since Tue 2025-04-01 18:15:10 IST; 1min 30s ago Invocation: 38901bd911cd4646a11669947332f44b Docs: man:sshd(8) man:sshd_config(5) Main PID: 17430 (sshd) Tasks: 1 (limit: 9475) Memory: 4.4M (peak: 21.4M) CPU: 88ms CGroup: /system.slice/sshd.service └─17430 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups" Apr 01 18:15:10 fedora systemd[1]: Starting sshd.service - OpenSSH server daemon... Apr 01 18:15:10 fedora sshd[17430]: Server listening on 0.0.0.0 port 22. Apr 01 18:15:10 fedora sshd[17430]: Server listening on :: port 22. Apr 01 18:15:10 fedora systemd[1]: Started sshd.service - OpenSSH server daemon. Apr 01 18:16:22 fedora sshd-session[17449]: Accepted password for andreyex from 192.168.1.101 port 54476 ssh2 Apr 01 18:16:22 fedora sshd-session[17449]: pam_unix(sshd:session): session opened for user andreyex(uid=1000) by andreyex(uid=0)
3. Настройте брандмауэр
Fedora использует firewalld
для управления правилами брандмауэра. Откройте SSH-порт с помощью:
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload
Подтвердите, что правило применено:
sudo firewall-cmd --list-services
Вы должны увидеть ssh
в списке.
dhcpv6-client samba-client ssh
4. Настройте аутентификацию по SSH-ключу (рекомендуется).
Для дополнительной безопасности используйте SSH-ключи вместо паролей.
Предупреждение: не отключайте аутентификацию по паролю, пока не убедитесь, что вход по ключу SSH работает! В противном случае вы можете заблокировать доступ к серверу, если ключи настроены неправильно.
Сгенерируйте пару ключей на вашем локальном компьютере (не на сервере):
ssh-keygen -t ed25519 -C "your-email@example.com"
Нажмите Enter
для принятия настроек по умолчанию. При желании установите парольную фразу для дополнительной защиты.
Generating public/private ed25519 key pair. Enter file in which to save the key (/home/andreyex/.ssh/id_ed25519): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/andreyex/.ssh/id_ed25519 Your public key has been saved in /home/andreyex/.ssh/id_ed25519.pub The key fingerprint is: SHA256:smI0vudP4BHRayrjGXZZghHhE6h8qin9jgifPs+6JDQ sk@andreyex.local The key's randomart image is: +--[ED25519 256]--+ | .+o.. | | .... .. | |.. oo. . | |.. .....+ | | Eo o +*S | |...o=o+= | |+o.o+*o . | |==o=oo.. | |o.BB*o... | +----[SHA256]-----+
Скопируйте открытый ключ на сервер Fedora:
ssh-copy-id yourusername@your-fedora-ip
Пример:
ssh-copy-id andreyex@192.168.1.42
Здесь andreyex
— это имя пользователя, а 192.168.1.42
— IP-адрес нашей системы Fedora Linux.
Для выполнения этого шага вам нужно будет один раз ввести свой пароль.
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 2 key(s) remain to be installed -- if you are prompted now it is to install the new keys andreyex@192.168.1.42's password: Number of key(s) added: 2 Now try logging into the machine, with: "ssh 'andreyex@192.168.1.42'" and check to make sure that only the key(s) you wanted were added.
Вы также можете вручную добавить открытый ключ, используя эту команду:
cat ~/.ssh/id_ed25519.pub | ssh yourusername@your-fedora-ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Обеспечьте надлежащие права доступа к файлам:
ssh yourusername@your-fedora-ip "chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh"
Теперь протестируйте вход по SSH-ключу (перед отключением паролей!).:
ssh yourusername@your-fedora-ip
В случае успеха вы войдёте в систему без пароля. Если это не сработает, проверьте ~/.ssh/authorized_keys
на сервере и повторите попытку ssh-copy-id
.
Теперь вы можете безопасно отключить аутентификацию по паролю (при использовании SSH-ключей).
Примечание: Делайте это только после подтверждения того, что ключ входа работает.
Сначала создайте резервную копию исходного файла конфигурации в вашей системе fedora.
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Затем отредактируйте /etc/ssh/sshd_config
и установите:
PasswordAuthentication no
Сохраните и выйдите, затем перезапустите SSH:
sudo systemctl restart sshd
5. Подключитесь к вашей системе Fedora через SSH
Как только SSH будет настроен, подключитесь с помощью:
ssh yourusername@your-fedora-ip
6. Защитите свою конфигурацию SSH
Для повышения безопасности SSH вам может потребоваться выполнить следующие рекомендуемые действия по обеспечению безопасности.
Отредактируйте файл конфигурации SSH в вашей системе Fedora:
sudo nano /etc/ssh/sshd_config
1. Отключите вход в систему root:
Изменить #PermitRootLogin yes
на:
PermitRootLogin no
2. Разрешить определенным пользователям:
AllowUsers yourusername
7. (Необязательно) Измените SSH-порт по умолчанию в Fedora
Для дополнительной безопасности измените SSH-порт по умолчанию (по умолчанию это 22
):
sudo nano /etc/ssh/sshd_config
Измените строку:
Port 2222
Обновите брандмауэр:
sudo firewall-cmd --permanent --add-port=2222/tcp sudo firewall-cmd --reload
Перезапустить SSH:
sudo systemctl restart sshd
Если SSH работает на порте, отличном от порта по умолчанию, SELinux заблокирует его, если не будет явно разрешено.
Проверьте текущую политику SELinux для SSH:
sudo semanage port -l | grep ssh
Если ваш пользовательский порт (например, 2222
) отсутствует, добавьте его:
sudo semanage port -a -t ssh_port_t -p tcp 2222
Перезапустите SSH и перезагрузите политики SELinux:
sudo systemctl restart sshd sudo restorecon -v /etc/ssh/sshd_config
Убедитесь, что SSH прослушивает новый порт:
sudo ss -tlnp | grep sshd
В нем будет указан список разрешенных портов ssh:
LISTEN 0 128 0.0.0.0:2222 0.0.0.0:* users:(("sshd",pid=18075,fd=7)) LISTEN 0 128 [::]:2222 [::]:* users:(("sshd",pid=18075,fd=8))
Подключитесь с помощью нового порта:
ssh -p 2222 yourusername@your-fedora-ip
Заблокирован? Повторно включите проверку подлинности по паролю SSH
Допустим, вы отключили аутентификацию по паролю, прежде чем правильно настроить аутентификацию по ключу. Теперь вы не можете войти в свою систему Fedora. Как снова включить аутентификацию по паролю? Это просто!
Доступ к Серверу осуществляется через Консоль или в режиме восстановления
Если ваш сервер представляет собой физическую машину, используйте клавиатуру и монитор для прямого доступа к нему.
Если это виртуальный или облачный сервер, проверьте, предлагает ли ваш хостинг-провайдер веб-консоль (например, через панель управления).
Получив доступ к консоли, выполните следующие действия:
Загрузка в аварийный режим
Перезапустите систему и в меню GRUB нажмите e
для редактирования записи о загрузке.
Найдите строку, которая начинается с linux
или linux16
, и добавьте в конец строки следующее:
systemd.unit=rescue.target
Нажмите Ctrl + X
, чтобы загрузиться с этими параметрами.
Как только вы перейдете в режим восстановления, у вас будет root-доступ к командной строке.
Повторно включите проверку подлинности SSH
Теперь измените файл конфигурации SSH:
nano /etc/ssh/sshd_config
Найдите и измените следующие строки:
PasswordAuthentication yes PubkeyAuthentication yes
Сохраните и выйдите (Ctrl + X
, затем Y
, затем Enter
).
Перезапустить SSH:
systemctl restart sshd
Добавьте новый SSH-ключ (необязательно)
Если вы собираетесь использовать аутентификацию на основе ключей, убедитесь, что ваш открытый ключ находится в файле ~/.ssh/authorized_keys
:
mkdir -p ~/.ssh echo "your-public-key-here" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh
Перезагрузите компьютер и протестируйте доступ по SSH
Выйдите из режима восстановления и перезагрузитесь:
reboot
Попробуйте войти в систему через SSH:
ssh user@your-fedora-ip
Заключение
Настройка SSH в Fedora — важный шаг для удалённого доступа и управления сервером. Защитив конфигурацию SSH, вы сможете предотвратить несанкционированный доступ и повысить безопасность системы.