SSH ключове за сървъри в облака ⋆ ALexHost SRL

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills
13.12.2024

SSH ключове за сървъри в облака

Ключовете SSH (Secure Shell) са съществена част от безопасното управление на сървърите в облака. Те предлагат по-сигурен и по-удобен метод за удостоверяване на потребителите в сравнение с традиционните влизания с парола. Чрез използването на SSH ключове можете да установите сигурни, криптирани връзки към вашите облачни сървъри, като гарантирате, че само оторизирани потребители могат да получат достъп. В тази статия ще разгледаме какво представляват SSH ключовете, как работят и как да ги настроите на вашия облачен сървър.

1. Какво представляват SSH ключовете?

SSH ключовете са криптографски ключове, използвани за удостоверяване на клиенти към SSH сървър. Вместо да се използва комбинация от потребителско име и парола, която може да бъде уязвима на атаки с груба сила, SSH ключовете осигуряват по-сигурен и автоматизиран начин за влизане в отдалечени сървъри. Двойките SSH ключове се състоят от две части:

  • Частен ключ: Той се съхранява на сигурно място на вашата локална машина и никога не трябва да се споделя.
  • Публичен ключ: Той се поставя на отдалечения сървър. Сървърът използва публичния ключ, за да удостоверява потребителите въз основа на техния частен ключ.

Когато се свързвате със сървър в облака, протоколът SSH проверява дали публичният ключ на сървъра съвпада с частния ключ, съхраняван на вашата машина. Ако съвпадението бъде потвърдено, връзката се установява, без да е необходима парола.

2. Защо да използвате SSH ключове за сървъри в облака?

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

  • Повишена сигурност: SSH ключовете са много по-трудни за разбиване от паролите, тъй като използват криптографски алгоритми за удостоверяване. Освен това SSH ключовете не са уязвими на атаки с груба сила или фишинг, както паролите.
  • Удобство: След като бъдат настроени, SSH ключовете позволяват удостоверяване без парола, което улеснява влизането в системата, без да се налага всеки път да се въвеждат идентификационни данни.
  • Автоматизация: Много автоматизирани процеси и скриптове разчитат на автентикация, базирана на SSH ключове, което прави управлението на сървъри и внедрявания в облака по-ефективно.
  • Контрол на достъпа: SSH ключовете могат да се разпространяват само сред оторизирани потребители, което ви позволява да контролирате кой има достъп до вашите сървъри в облака.

3. Как работи удостоверяването на SSH ключове

Ето една опростена версия на това как работи удостоверяването на SSH ключове:

  1. Клиентът (вашата локална машина) изпраща заявка за връзка със сървъра.
  2. Сървърът проверява дали публичният ключ на клиента съвпада с някой от ключовете, съхранявани във файла ~/.ssh/authorized_keys.
  3. Ако бъде намерено съвпадение, сървърът изпраща предизвикателство (обикновено криптирани данни) на клиента.
  4. Клиентът използва своя частен ключ, за да декриптира предизвикателството и да изпрати отговор на сървъра.
  5. Сървърът проверява отговора и ако той е верен, разрешава достъп на клиента без парола.

4. Как се генерират SSH ключове

За да използвате удостоверяване с SSH ключове, първо трябва да генерирате двойка ключове. Ето как да го направите:

В Linux или macOS:

  1. Отворете терминала.
  2. Изпълнете следната команда, за да генерирате нова двойка SSH ключове:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Ето какво означава всяка опция:

  • -t rsa: Указва алгоритъма RSA.
  • -b 4096: Генерира 4096-битов ключ за допълнителна сигурност.
  • -C “your_email@example.com”: Добавя коментар, за да помогне за идентифицирането на ключа.
  1. Ще бъдете подканени да изберете място, където да запазите ключа. По подразбиране той се съхранява в директорията ~/.ssh/. Натиснете Enter, за да приемете местоположението по подразбиране.
  2. Можете също така да зададете парола за допълнителна сигурност, въпреки че това не е задължително. Ако не искате да използвате парола, натиснете Enter, за да я оставите празна.

В Windows:

Ако използвате Windows, можете да използвате SSH клиент като PuTTYgen или вградената функция OpenSSH в Windows 10 и по-нови версии:

  1. Отворете PowerShell или Command Prompt.
  2. Изпълнете същата команда, както по-горе, за да генерирате двойката ключове:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

След изпълнение на командата процесът е същият като при Linux или macOS.

5. Добавяне на вашия SSH ключ към сървъра в облака

След като генерирате двойката SSH ключове, трябва да копирате публичния ключ на вашия сървър в облака, за да активирате удостоверяване, базирано на ключове.

Метод 1: Използване на ssh-copy-id

В Linux или macOS можете да използвате командата ssh-copy-id, за да прехвърлите публичния ключ на вашия сървър:

ssh-copy-id user@your-server-ip

Тази команда ще ви подкани да въведете паролата си за сървъра. След като въведете паролата, тя ще копира публичния ключ във файла ~/.ssh/authorized_keys на сървъра.

Метод 2: Ръчен метод

Ако сте с Windows или предпочитате ръчни стъпки, можете да копирате публичния ключ ръчно:

  1. Отворете файла с публичния ключ с помощта на текстов редактор:
cat ~/.ssh/id_rsa.pub
  1. Копирайте цялото съдържание на файла.
  2. Свържете се със сървъра, като използвате SSH сесия, базирана на парола:
ssh user@your-server-ip
  1. На сървъра създайте директорията ~/.ssh, ако тя не съществува:
mkdir -p ~/.ssh
  1. Отворете файла authorized_keys:
nano ~/.ssh/authorized_keys
  1. Поставете копирания публичен ключ във файла и го запазете.
  2. Задайте правилните разрешения:
chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh

Това гарантира, че само потребителят има достъп за четене и писане до ключа и директорията.

6. Деактивиране на удостоверяването с парола (по избор, но препоръчително)

След като SSH ключовете са настроени и работят, силно препоръчително е да деактивирате удостоверяването с парола на сървъра, за да предотвратите неоторизиран достъп. Ето как да го направите:

  1. Отворете конфигурационния файл SSH на вашия облачен сървър:
sudo nano /etc/ssh/sshd_config
  1. Намерете следния ред и го променете на no:
PasswordAuthentication no
  1. Запазете файла и рестартирайте услугата SSH:
sudo systemctl restart sshd

Сега само потребителите с валиден SSH ключ ще могат да влизат в системата.

7. Управление на SSH ключове

  • Добавяне на няколко ключа: Ако няколко потребители се нуждаят от достъп до сървъра, можете да добавите техните публични ключове във файла authorized_keys.
  • Премахване на ключове: Ако искате да отмените достъпа на определен потребител, просто премахнете публичния му ключ от файла authorized_keys.

8. Заключение

Използването на SSH ключове за достъп до сървър в облака е един от най-добрите начини за защита на сървъра и избягване на уязвимостите, свързани с удостоверяването с парола. Като следвате стъпките, описани в тази статия, можете да генерирате SSH ключове, да ги добавите към вашия облачен сървър и дори да забраните влизането с парола за по-добра сигурност.

Създаването на SSH ключове може да изисква малко повече усилия в началото, но дългосрочната сигурност и удобството, които те осигуряват, си заслужават усилията.

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills