Посібники

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

  • 7 хвилини на читання
  • Команда Hostragons
Вилучення SSH-ключів у Linux: Всі методи та поради

Вступ

Вилучення SSH-ключів у Linux - це критичний крок, особливо коли ми хочемо видалити або замінити SSH-ключ. Ми можемо бажати скасувати ключі для підвищення безпеки наших SSH-з'єднань або переходу до нового SSH безпекового налаштування. У цій статті ми розглянемо, якими методами можна здійснити процес вилучення ключів SSH, які має переваги та недоліки, і які можливі альтернативні рішення. Крім того, ми підкріпимо процеси прикладами, а в кінці відповімо на часто задавані питання.

1. SSH Ключ: Що це і чому його варто вилучити?

SSH (Secure Shell) - це протокол і набір інструментів, що забезпечує безпечне з'єднання до віддалених серверів. Метод “ключової аутентифікації” пропонує безпечне і зручне використання. У таких ситуаціях може знадобитися вилучення SSH-ключів:

  • Безпека: Якщо ви переживаєте, що ваш ключ скомпрометований або був створений за застарілими алгоритмами.
  • Зміна користувача: У разі передачі сервера, додавання нового члена команди або анулювання доступу експерта, що покинув проект.
  • Нове налаштування: Перезавантаження ключів для нових потужніших алгоритмів (наприклад, Ed25519) або різних SSH безпекових конфігурацій.

Вилучення SSH-ключів може бути не лише необхідною мірою у ризикових ситуаціях, але й частиною регулярної політики безпеки. Видалення невикористовуваних або зайвих ключів зменшує можливі вектори атак на кібербезпеку.

2. Основні етапи вилучення SSH-ключів

Вилучення SSH-ключа або його анулювання зазвичай вимагає уважного розгляду двох окремих етапів:

  1. Видалення ключів на локальному комп'ютері: Зазвичай пов'язано з видаленням приватних (private) та публічних (public) ключів з каталогу ~/.ssh/.
  2. Видалення зареєстрованих ключів на віддаленому сервері: Очищення рядків у файлі ~/.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

Якщо ви переходите на новий проект або переходите до роботи з іншим користувачем, видалення цих файлів буде достатнім. Проте, якщо ви працюєте з кількома ключами на одному сервері, бути обережним, щоб не залишити неправильний файл.

приклад видалення ключа SSH в Linux

2.2 Вилучення ключів з віддаленого сервера

При переході до етапу вилучення SSH-ключів на сервері, вам потрібно буде видалити рядок з файлу ~/.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-ключів

Перед виконанням будь-якої дії доцільно розглянути плюси та мінуси, щоб уникнути можливих проблем. Ось переваги та недоліки процесу вилучення ключів:

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. Конкретні приклади та поради

Розглянемо кілька прикладів, як діяти:

  1. Приклад з командою розробників: У вас є команда з 5 осіб. Для звільненого члена варто видалити лише його рядок з файлу authorized_keys. Додатково слід вилучити його локальний private key.
  2. Передача сервера: При зміні інфраструктури вам слід анулювати всі SSH-ключі на старому сервері та використовувати лише актуальні ключі на новому сервері. Це дозволяє уникнути можливих вразливостей деактивованих систем.
  3. Сценарій екстреної ситуації: Якщо є підозра на компрометацію ключа, відразу ж проведіть вилучення SSH-ключа для запобігання несанкціонованого доступу. Потім створіть новий ключ і додайте його для підключення до системи.

Ці приклади показують, наскільки критичне рішення вилучення ключів може бути в різних масштабах та ситуаціях.

6. Зовнішні та внутрішні зв'язки

Якщо вам потрібна більш детальна інформація про SSH, ви можете знайти всю документацію на офіційному сайті OpenSSH (DoFollow).

Крім того, в нашій категорії Linux ви можете переглянути різні приклади конфігурацій.

7. Підсумки та висновок

Вилучення SSH-ключів в Linux є невід'ємною частиною управління безпекою і керованістю. Ви можете захотіти вилучити SSH-ключ у зв'язку з порушеннями безпеки, змінами в команді або просто для надання порядку. Процес загалом складається з двох етапів: очищення ваших локальних ключів і видалення відповідних рядків у файлі authorized_keys на сервері.

Рекомендується бути уважним на цьому етапі, розробити політику щодо процесів SSH безпекових налаштувань та забезпечити внутрішню координацію в команді. Використання сучасних криптографічних методів, регулярні перевірки і деактивація невикористовуваних ключів є важливими для захисту від кіберзагроз. Пам'ятайте, незначна недбалість може призвести до серйозного витоку даних.

Часто задавані питання (FAQ)

1. Чи потрібно, щоб сеанс був відкритий для видалення SSH-ключів?

Зазвичай так. Щоб вилучити SSH-ключ, у вас має бути доступ до сервера. Якщо сеанс відкритий, ви можете редагувати файл authorized_keys та видаляти файли у вашому каталозі ~/.ssh. Проте, якщо ви маєте доступ іншим способом (наприклад, через консолі root), ви також можете внести зміни без відкриття сеансу.

2. Що потрібно зробити, щоб знову приєднатися після вилучення SSH-ключа?

Якщо ви видалили старий ключ, з цим ключем підключитися більше не вдасться. Якщо ви плануєте нову SSH безпекову конфігурацію, вам потрібно створити нові ключі за допомогою команди ssh-keygen і додати публічний ключ в файл authorized_keys на сервері.

3. Чи потрібно вилучити один і той же ключ, що використовується на кількох серверах?

Якщо ви хочете повністю деактивувати ключ, так, вам потрібно видалити записи authorized_keys на всіх серверах. В іншому випадку ви все ще зможете отримати доступ до інших серверів.

Поділитися цією статтею:

Команда Hostragons

Актуальні посібники від нашої команди експертів з хостингу, серверів та доменних імен. Давайте разом знайдемо правильне рішення для вашого проєкту.

Зв'яжіться з нами