Ще настроим PuTTY (Windows OS) за достъп до отдалечен сървър по протокола SSH с авторизация не чрез потребителско име и парола, а чрез SSH ключ. Ще направим същата настройка и в Linux OS (Debian).

Логин/парола автентикация не е безопасна.

В статията „VPN 2023 год. Създаваме личен VPN за 292 руб. на месец“ се описва как да се закупи виртуален сървър, а за достъп до виртуалния сървър се използва протоколът SSH с логин и парола. Логин – root. SSH порт – 22 (стандартен). Портът е отворен за всички. Не трябва да се оставя така! В Интернет има голям брой ботове (автоматични програми), които сканират отворените портове на сървъри и опитват да открият логин/парола за неоторизиран достъп до сървъра.

План за действия за сигурност на сървъра.

За да защитим нашия сървър, ние:

  • на потребителя root е забранено да се удостоверява чрез SSH;
  • Ще създадем обикновен потребител и ще настроим за него автентикацията чрез SSH ключ.

А ако е необходимо да имате root достъп до сървъра? Моля, автентифицирайте се като обикновен потребител с SSH ключ и след това превключете потребителя в суперпотребителски режим (root) с помощта на командата:

su -

Генериране на SSH ключ в Windows

За генериране на SSH ключ в ОС Windows ще използваме програмата PuTTY Key Generator (puttygen.exe), която се инсталира заедно с програмата PuTTY (putty.exe). Можете да я изтеглите от този линк https://putty.org.ru/download.html.

Програма PuTTY Key Generator

Избираме типа на генериран ключ RSA (вж. горната снимка), а броят битове в ключа е 2048 и натискаме бутона Генериране. Движим компютърната мишка хаотично, за да генерираме ключа.

Генерираният SSH ключ може да бъде допълнително защитен с паролна фраза. За тази цел в полето Key passphrase въвеждаме паролната фраза, а в полето Confirm passphrase повтаряме въвеждането на паролната фраза:

SSH ключ. Генериране в операционната система Windows.

Натискаме бутона Запазване на публичен ключ (вж. горната илюстрация), за да запазим публичния ключ с разширение .pub:

SSH ключ. Запазване на публичен ключ.

Натискаме бутона Запазване на личен ключ, за да запазим личния ключ с разширение .ppk:

SSH ключ. Запазете частния ключ.

Частният ключ (.ppk) се съхранява на компютъра, от който ще се осъществява достъп до сървъра. А публичният ключ (.pub) трябва да бъде импортиран на сървъра.

Генериране на SSH ключ в Linux

За генериране на SSH ключ в Linux ОС въведете следната команда:

ssh-keygen

Измисляме име за SSH ключа (например, VSD_bg). По желание може да зададем паролна фраза (passphrase) за защита на SSH ключа:

SSH ключ. Генериране в Linux операционна система.

След изпълнението на командата ssh-keygen получаваме частен ключ (VSD_bg) и публичен ключ (VSD_bg.pub), който ще импортираме на сървъра.

Създаване на потребител на сървъра

На сървъра създаваме потребител с име user, с домашна директория /home/user и команден интерпретатор /bin/bash:

useradd -s /bin/bash -d /home/user -m user

Задаваме парола за потребител user:

passwd user

За изтриване на потребителя user заедно с домашната му директория се използва командата:

userdel -r user

Импортиране на публичен ключ (.pub)

Публичният ключ (.pub) трябва да бъде копиран от локалния компютър на сървъра. Това може да се направи с помощта на SCP-клиент. Повече информация: „Достъп до сървъра по протокола SCP в Windows/Linux„.

След като публичният ключ (.pub) е копиран на сървъра, трябва да бъде импортиран в специален файл с SSH ключове на потребителя, от името на когото ще се свързваме към сървъра по-късно.

За тази цел се влиза в сървъра като потребител user, създава се директория .ssh в началната директория (/home/user/):

mkdir .ssh

Задаваме права за достъп до директорията .ssh:

chmod 700 .ssh/

В директорията .ssh създаваме празен файл с името authorized_keys за SSH ключове:

touch .ssh/authorized_keys

Задаваме права за достъп до файла authorized_keys:

chmod 600 .ssh/authorized_keys

Публичният ключ (/home/user/VDS_bg.pub), генериран в ОС Windows, се импортира в специален файл с SSH ключове authorized_keys чрез командата:

ssh-keygen -i -f /home/user/VDS_bg.pub >> /home/user/.ssh/authorized_keys

Публичният ключ (/home/user/VSD_bg.pub), генериран в Linux операционната система, се импортира в специалния файл с ключове на SSH authorized_keys с помощта на следната команда:

cat /home/user/VSD_bg.pub >> /home/user/.ssh/authorized_keys

Сега може да се изтрие публичният ключ (.pub):

rm /home/user/VDS_bg.pub

Настройка авторизации с SSH ключ на сървър.

За настройка на автентикация с SSH ключ на сървъра ни е необходимо потребителско име с администраторски права (root).

Редактираме конфигурационния файл /etc/ssh/sshd_config. Забраняваме на потребителя root да се удостоверява чрез SSH.

PermitRootLogin no

Забраняваме удостоверяването чрез SSH с потребителско име и парола:

PasswordAuthentication no
Конфигурационен файл sshd_config

Запазваме промените в конфигурационния файл и рестартираме SSH сървъра:

/etc/init.d/ssh restart

Настройка PuTTY с SSH ключом (Windows)

Стартираме програмата PuTTY. В прозореца PuTTY Configuration избираме раздел Connection, подраздел SSH, а в него – подраздел Auth. В полето Private key file for authentication посочваме името на частния ключ (.ppk) и пълния му път:

Настройки PuTTY. Раздел Auth.

В раздела Връзка, в подраздела Данни, в полето Автоматично влизане в системата с потребителско име посочваме потребителското име, с което ще се осъществява достъп до сървъра. За нас това е потребител.

Настройки PuTTY. Раздел Данные.

В разделе Session проверете, че в полето Host Name (or IP address) има IP адреса на желания сървър, а в полето Port има цифрата 22. Натиснете бутона Save, след което бутона Open:

Настройки PuTTY. Раздел Сессия.

PuTTY ще поиска въвеждане на паролна фраза (Passphrase), с която сме защитили SSH ключа. За да не въвеждате паролната фраза всеки път при стартиране на PuTTY, можете да стартирате програмата Pageant (pageant.exe), да въведете паролната фраза в тази програма и частният ключ ще бъде в паметта на компютъра и няма да е необходимо да въвеждате паролната фраза при стартиране на PuTTY.

Стартираме програмата Pageant (pageant.exe), която също се инсталира заедно с програмата PuTTY:

Програма pageant.exe

В системния трей (областта за известия) на Windows ще се появи икона на тази програма. Кликваме два пъти върху иконата с компютърната мишка. Ще се появи прозорец Pageant Key List. Натискаме бутона Add Key:

Списък на ключови думи за конкурса за красота.

Избираме частен ключ (.ppk), въвеждаме паролна фраза (passphrase) за него и натискаме бутона Ok:

"Въведете парола за страницата"

Всичко! Частният ключ е в паметта на компютъра. Може да стартирате PuTTY и да установите връзка със сървъра по протокола SSH с авторизация чрез SSH ключ и без въвеждане на паролна фраза за SSH ключа:

SSH ключ. Аутентификация с помощью открытого ключа.

Достъп до SSH с SSH ключ (Линукс)

В Linux за достъп до сървър чрез SSH с авторизация с ключ SSH въведете командата:

ssh -i /home/sha/VSD_bg user@123.45.67.89

където /home/sha/VSD_bg е пълният път до частния ключ с име VSD_bg;

потребител – името на потребителя, от когото се осъществява достъп до сървъра;“

123.45.67.89 – това е IP адресът на сървъра.“

Изводи

SSH ключ вместо потребителско име и парола е ЗАДЪЛЖИТЕЛЕН при използване на собствен сървър с отворен за всички порт 22.

Обсъждаме статията в коментарите под статията. Присъединете се!

Коментари

Вашият коментар

Этот сайт защищен reCAPTCHA, и к нему применяются Google Политика конфиденциальности и Условия использования.

Sign In

Register

Reset Password

Please enter your username or email address, you will receive a link to create a new password via email.