Въведение
Премахването на SSH ключ за Linux е критична стъпка, когато искаме да изтрием или сменим SSH ключа. Можем да искаме да откажем ключовете, за да повишим сигурността на SSH връзките или да преминем към нова система за сигурност на SSH. В тази статия ще разгледаме методите за премахване на SSH ключове, техните предимства и недостатъци, както и възможни алтернативни решения. Ще затвърдим процесите чрез примери и в края ще отговорим на често задавани въпроси.
1. Какво е SSH ключ и защо да го премахнем?
SSH (Secure Shell) е протокол и инструментариум, който позволява сигурна връзка към отдалечени сървъри. Методът на "идентификация чрез ключ" предлага безопасна и практична употреба. Премахването на SSH ключ за Linux може да бъде необходимо в следните случаи:
- Сигурност: Ако се безпокоите, че ключът ви е бил компрометиран или е генериран с остарели алгоритми.
- Смяна на потребител: В случай на прехвърляне на сървъра, добавяне на нов член към екипа или анулиране на достъпа на специалист, който напуска проекта.
- Нова конфигурация: Генериране на нови ключове за по-сигурни алгоритми (например Ed25519) или различна система за сигурност на SSH.
Процесът на премахване на SSH ключа може да бъде предпочитан не само в рисковани ситуации, но и като част от редовните политики за безопасност. Изтриването на неизползвани или ненужни ключове намалява възможността за кибератаки.
2. Основни стъпки за премахване на SSH ключ
Премахването на SSH ключ или отказването му обикновено изисква разглеждане на две различни точки:
- Изтриване на ключовете на локалната машина: Обикновено това включва изтриване на частните (private) и публичните (public) ключове в директорията
~/.ssh/. - Изтриване на регистрираните ключове от отдалечения сървър: Почистване на редовете в файла
~/.ssh/authorized_keysна сървъра.
Тези две операции трябва да се извършват синхронизирано. Дори да изтриете локалния си ключ, ако информацията на сървъра остане, атакувач, който е получил достъп до сървъра, все още може да създаде риск.
2.1 Премахване на локален ключ
На системи с Linux или macOS SSH ключовете обикновено се намират в папката ~/.ssh. Примери:
~/.ssh/id_rsa(Частен ключ)~/.ssh/id_rsa.pub(Публичен ключ)~/.ssh/id_ed25519(Частен ключ)~/.ssh/id_ed25519.pub(Публичен ключ)
Трябва да внимавате при изтриването. Ако именуването е направено с уникално име (mycustomkey и т.н.), трябва да идентифицирате правилните файлове. Примерна команда изглежда по следния начин:
cd ~/.ssh/
rm id_rsa id_rsa.pub
# или
rm id_ed25519 id_ed25519.pub
Ако преминавате към нов проект или работите с различен потребител, изтриването на тези файлове ще бъде достатъчно. Но ако работите с множество ключове на един и същи сървър, трябва да бъдете внимателни, за да не изтриете погрешния файл.

2.2 Премахване на ключ от отдалечен сървър
Когато преминавате към стъпката по премахване на SSH ключа за Linux на сървъра, трябва да изтриете записания ред в файла ~/.ssh/authorized_keys на отдалечената машина, с потребителя, с когото се свързвате. Можете да изпълните следната операция:
# Влезте на сървъра.
ssh [email protected]
# След това отидете в домашната директория и отворете файла authorized_keys
nano ~/.ssh/authorized_keys
# Намерете реда, който искате да изтриете, и го премахнете.
Например, съдържанието на id_rsa.pub изглежда дълъг ред вътре в authorized_keys. Идентифицирайте и изтрийте този ред или редове. Когато запишете и излезете, достъпът на този ключ до сървъра ще бъде анулиран.
2.3 Специален метод: Обратна операция с ssh-copy-id
ssh-copy-id обикновено се използва за добавяне на ключове. Въпреки това, опцията "премахване" не е вградена. Въпреки това, ключовете, добавени с ssh-copy-id, съответстват на определени редове в authorized_keys, поради което е необходимо ръчно да премахнете тези редове. Тоест, директната команда ssh-copy-id -r не поддържа операция по изтриване. Затова можете да почистите authorized_keys чрез редактор или като напишете скрипт.
3. Плюсове и минуси на премахването на SSH ключ за Linux
Преди да предприемете подходяща стъпка, оценяването на плюсовете и минусите помага за предотвратяване на възможни проблеми. Ето преимуществата и недостатъците на процеса на изтриване на ключ:
3.1 Плюсове
- Повишена сигурност: Чрез анулиране на стари ключове, които не се използват или които могат да бъдат компрометирани, намалявате повърхността на възможната атака.
- Чиста администрация: Лесно прекратяване на достъпа на отделени членове на екипа. Това увеличава управляемостта.
- Редовни актуализации: Редовното изтриване и генериране на нови ключове може да осигури непрекъсната употреба на модерни алгоритми за криптиране.
3.2 Минуси
- Грешно изтриване на ключ: Изтриването на погрешен файл или ред може да доведе до загуба на достъп до системите.
- Временно загуба на достъп: По време на операцията неопитните потребители могат да имат трудности с повторното свързване.
- Разходи на труда: Управлението на този процес за голям брой сървъри или потребители може да отнеме много време.
Поради това, заедно с предимствата, трябва да се имат предвид и непредвидените рискове, и да се извършват операциите планирано и внимателно.
4. Алтернативни или допълнителни методи
Освен премахването на SSH ключове, съществуват и различни подходи. Преглеждането на тази част може да предостави предимства в някои специални сценарии:
4.1 Актуализации на паролата
Ако искате да промените само паролата на ключа на базата на система за сигурност на SSH, можете да обновите паролата с командата ssh-keygen -p. Това повишава нивото на сигурност без да е необходимо напълно да изтривате ключа.
4.2 Списък за отмяна на ключове (KRL)
В версии OpenSSH 6.2 и по-високи, функцията Списък за отмяна на ключове (KRL) е налична. Това означава, че на сървъра можете да поддържате списък с ключове, които са невалидни или сертификаци, които не се приемат. С команди като ssh-keygen -k -f revoked_keys можете да генерирате KRL и да конфигурирате SSH в зависимост от него.
4.3 Блокиране чрез конфигурационен файл SSH
На сървърната страна, в /etc/ssh/sshd_config можете да блокирате потребители или определени типове ключове с помощта на някои параметри. Например, с настройки като PasswordAuthentication no можете да разрешите само достъп чрез ключ, а според нужда да създадете различни правила за DMZ или тестови системи. Но това е метод, който променя общия протокол за достъп, а не "изтриването на ключа".
5. Конкретни примери и съвети
Нека разгледаме няколко примера как да напредвате в практиката:
- Пример с екип за разработка: Имате екип от 5 души. За отделен член може просто да бъде достатъчно да изтриете неговия ред от файла
authorized_keys. Освен това, частният ключ на този член от локалната машина също трябва да бъде изтрит. - Прехвърляне на сървъра: Когато сменяте инфраструктурата, можете да откажете всички SSH ключове от стария сървър и да използвате само актуалните ключове на новия сървър. Това предотвратява повторното активиране на уязвимостите на деактивираните системи.
- Сценарий на спешен случай: Ако имате основания да подозирате, че ключът е компрометиран или откраднат, незабавно можете да извършите премахване на SSH ключа за Linux, за да предотвратите неразрешен достъп. След това можете да създадете нов ключ и да го добавите, за да се свържете със системата си.
Тези примери демонстрират колко критан може да бъде решението за премахване на ключ в различни мащаби и сценарии.
6. Външни и вътрешни връзки
Ако имате нужда от по-подробна информация за SSH, можете да намерите цялата документация на Официалния сайт на OpenSSH (DoFollow).
Също така можете да разгледате различни примери за конфигурация в нашата категория Linux.
7. Резюме и заключение
Премахването на SSH ключ за Linux е една от основните стъпки за сигурност и управляемост. Можете да искате да изтриете SSH ключа поради нарушения на сигурността, промени в екипа или само за да осигурите ред. Процесът се състои в основни две стъпки: изчистване на вашите локални ключове и премахване на съответните редове от файла authorized_keys на сървъра.
Препоръчително е да действате внимателно на този етап, да управлявате процесите на система за сигурност на SSH чрез писмена политика и да осигурите координация в екипа. Използването на актуални криптографски методи, извършването на периодични проверки и деактивирането на неизползвани ключове създават важен щит срещу кибератаки. Не забравяйте, че едно малко пропускане може да отвори вратата за значително нарушение на данните.
Често задавани въпроси (ЧЗВ)
1. Нужно ли да имам отворена сесия в системата за премахване на SSH ключа за Linux?
Обикновено да. За да премахнете SSH ключа, трябва да имате достъп до сървъра. Ако сесията е отворена, можете да редактирате файла authorized_keys и да изтриете файловете в папката ~/.ssh на локалния си компютър. Въпреки това, ако имате достъп по друг начин (например чрез кореновата конзола), можете да направите изменения и без да е необходимо да отваряте сесия.
2. Какво трябва да направя, за да се свържа отново след премахване на SSH ключа?
След като изтриете стария ключ, свързването с него вече няма да е възможно. Ако планирате нова система за сигурност на SSH, трябва да генерирате нови ключове с ssh-keygen и да добавите публичния ключ в файла authorized_keys на сървъра.
3. Използвам един и същи ключ на няколко сървъра, трябва ли да го премахна от всички?
Ако искате да деактивирате ключа напълно, да, трябва да изтриете записите на authorized_keys на всички сървъри. В противен случай, все още можете да получите достъп до различни сървъри.