🔐 Генериране и управление на SSH ключове в Linux

SSH (Secure Shell) е незаменим инструмент за сигурна комуникация между компютри. В тази статия ще разгледаме как да генерираме, управляваме и използваме SSH ключове в Linux, за да подобрим сигурността на отдалечените връзки.
📌 Какво е SSH ключ?
SSH ключовете са двойка криптографски ключове (публичен и частен), които заменят паролите при удостоверяване. Те са:
- По-сигурни – устойчиви на brute force атаки.
- По-удобни – не изискват въвеждане на парола при всяка връзка.
- Лесно управляеми – могат да се използват за автоматизация.
🛠️ Генериране на SSH ключ
За да генерирате нов SSH ключ, използвайте командата:
ssh-keygen -t ed25519 -C „ваш_коментар@пример.com“
📌 Опции:
-t ed25519
– препоръчителният алгоритъм (съвременен и сигурен).-C "коментар"
– опционално описание (обикновено имейл).
Ако използвате по-стар софтуер, може да се наложи RSA:
ssh-keygen -t rsa -b 4096 -C „ваш_коментар@пример.com“
🔹 Стъпки след изпълнение:
- Системата ще поиска местоположение за запазване (натиснете
Enter
за стандартното). - Задайте парола (passphrase) за допълнителна защита (незадължително).
📂 Управление на SSH ключове
🔍 Преглед на съществуващи ключове
SSH ключовете се съхраняват в ~/.ssh/
. За да видите съдържанието:
ls -la ~/.ssh
Типични файлове:
id_ed25519
/id_rsa
– частен ключ (никога не споделяйте!).id_ed25519.pub
/id_rsa.pub
– публичен ключ (споделя се със сървърите).
➕ Добавяне на публичен ключ към сървър
За да влезете без парола, публичният ключ трябва да бъде добавен в ~/.ssh/authorized_keys
на отдалечения сървър.
⚡ Автоматичен метод (ако имате достъп с парола):
ssh-copy-id потребител@сървър
🛠 Ръчен метод (копиране на ключа):
- Покажете публичния ключ:
cat ~/.ssh/id_ed25519.pub
Копирайте изхода и го добавете в ~/.ssh/authorized_keys
на сървъра.
🔄 Управление на множество SSH ключове
Ако имате няколко ключа, можете да ги конфигурирате в ~/.ssh/config
:
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_github
IdentitiesOnly yes
Host my-server
HostName 192.168.1.100
User admin
IdentityFile ~/.ssh/id_rsa_custom
📌 Ползи:
- Избягва ръчно указване на ключове (
-i
). - Опростява връзките с псевдоними (
ssh my-server
).
🔐 Защита на SSH ключове
🔑 Използване на ssh-agent за управление на пароли
Ако сте задали passphrase, можете да я кеширате, за да не я въвеждате многократно:
eval „$(ssh-agent -s)“
ssh-add ~/.ssh/id_ed25519
🔹 Автоматично добавяне при стартиране:
Добавете следното в ~/.bashrc
или ~/.zshrc
:
if [ -z „
SSHAUTHSOCK„];theneval„SSHAUTHSOCK„];theneval„(ssh-agent -s)“
ssh-add ~/.ssh/id_ed25519 2>/dev/null
fi
🚫 Забрана на вход с парола
За да забраните вход само с парола (задължително SSH ключ), редактирайте /etc/ssh/sshd_config
:
PasswordAuthentication no
ChallengeResponseAuthentication no
След това рестартирайте SSH сървъра:
sudo systemctl restart sshd
🗑️ Изтриване и ротация на ключове
❌ Премахване на компрометиран ключ
Ако ключ е изтекъл, изтрийте го от:
- Локалната машина (
~/.ssh/
). - Всички сървъри (
~/.ssh/authorized_keys
).
🔄 Ротация на ключове (Best Practice)
Редовно генерирайте нови ключове (напр. 1-2 години) и ги разпространявайте.
🏁 Заключение
SSH ключовете са мощен инструмент за сигурност и удобство. Следвайте тези стъпки:
✅ Използвайте ed25519
или RSA 4096
.
✅ Защитете частните ключове с passphrase.
✅ Конфигурирайте ~/.ssh/config
за лесно управление.
✅ Деактивирайте вход с парола за максимална защита.
С тези практики ще подобрите сигурността на вашите Linux системи значително! 🚀
Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу: 🔰 Donate ☕️ Дарете с PayPalDonate 💳 Дарете с Revolut