Как да инсталирате и конфигурирате 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.

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

#Порт 22

Разкоментирайте го и променете номера на порта:

Порт 2222

След като запазите файла, рестартирайте SSH услугата, за да приложите промените:

sudo systemctl restart ssh

Уверете се, че сте актуализирали правилата на защитната стена, за да разрешите връзките на новия порт.

2. Деактивиране на влизането на главния потребител

Разрешаването на влизане в 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