Руководства

Удаление SSH-ключей в Linux: Все методы и советы

  • 7 минут на чтение
  • Команда Hostragons
Удаление SSH-ключей в Linux: Все методы и советы

Введение

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

1. Что такое SSH-ключ и почему его может потребоваться удалить?

SSH (Secure Shell) — это протокол и набор инструментов для безопасного подключения к удаленным серверам. Метод "аутентификация на основе ключей" предлагает безопасное и удобное использование. Ниже приведены ситуации, когда может потребоваться удаление SSH-ключа в Linux:

  • Безопасность: если вы беспокоитесь, что ваш ключ был скомпрометирован или создан с использованием устаревших алгоритмов.
  • Изменение пользователя: ситуации, связанные с передачей сервера, добавлением нового члена в команду или отказом в доступе к проекту для выходящего специалиста.
  • Новая конфигурация: необходимость повторного создания ключей для более сильных алгоритмов (например, 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-ключа в 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). Это позволяет сохранять список, которые ключи недействительны или какие сертификаты не будут приняты на сервере. KRL может быть создан с помощью команд, таких как ssh-keygen -k -f revoked_keys, и настроен SSH в соответствии с этим.

4.3 Блокировка с помощью конфигурационного файла SSH

На стороне сервера вы можете заблокировать пользователей или определенные типы ключей, используя некоторые параметры в файле /etc/ssh/sshd_config. Например, установки, такие как PasswordAuthentication no, позволяют разрешать только доступ по ключам, а для DMZ или тестовых систем можно создавать другие политики. Однако это метод, который изменяет общий протокол доступа, а не просто "удаляет ключ".

5. Конкретные примеры и советы

Рассмотрим несколько примеров того, как можно действовать:

  1. Пример команды разработчиков: у вас команда из 5 человек. Для вышедшего человека может быть достаточно удалить только его строку из файла authorized_keys. Кроме того, его локальный закрытый ключ также должен быть удалён.
  2. Передача сервера: когда инфраструктура изменяется, вы отзывете все SSH-ключи со старого сервера и будете использовать только актуальные ключи на новом сервере. Это предотвратит повторное появление уязвимостей в отключенных системах.
  3. Сценарий аварийной ситуации: если есть подозрения на компрометацию ключа, немедленно выполните удаление SSH-ключа в Linux, чтобы предотвратить несанкционированный доступ. Затем создайте новый ключ и добавьте его для соединения с вашей системой.

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

6. Внешние и внутренние ссылки

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

Кроме того, в нашей категории Linux на сайте вы можете ознакомиться с разными примерами конфигураций.

7. Резюме и вывод

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

На этом этапе рекомендуется действовать осторожно, управлять процессами конфигурации безопасности SSH с помощью письменной политики и обеспечивать координацию внутри команды. Использование современных криптографических методов, периодическая проверка и отключение неиспользуемых ключей создают важный барьер против кибератак. Помните, что небольшая оплошность может привести к серьёзному нарушению данных.

Часто задаваемые вопросы (FAQ)

1. Нужно ли, чтобы сеанс был активен для выполнения удаления SSH-ключа в Linux?

В целом, да. Чтобы удалить SSH-ключ, вам необходимо иметь доступ к серверу. Если сеанс активен, вы можете редактировать файл authorized_keys, а на локальной стороне вы можете удалять файлы в вашей папке ~/.ssh. Однако вы также можете редактировать без сеанса, если у вас есть доступ другим способом (например, через консоль root).

2. Что нужно делать после удаления SSH-ключа, чтобы повторно подключиться?

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

3. Я использую один и тот же ключ на нескольких серверах, нужно ли мне удалить его на всех?

Если вы хотите полностью деактивировать ключ, да, нужно удалить записи authorized_keys на всех серверах. В противном случае доступ всё ещё может быть доступен на разных серверах.

Поделитесь этой статьей:

Команда Hostragons

Актуальные руководства от нашей команды экспертов по хостингу, серверам и доменным именам. Давайте вместе найдем оптимальное решение для вашего проекта.

Свяжитесь с нами