Удаление SSH ключа на сервере и локальной машине

Как удалить ssh key

Содержание статьи

Как удалить ssh key

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

На локальной машине ключи хранятся обычно в каталоге ~/.ssh/ и включают приватные и публичные файлы. При удалении важно убедиться, что удаляется только нужный ключ, чтобы не нарушить доступ к другим серверам.

На сервере SSH ключи находятся в файле ~/.ssh/authorized_keys. Удаление ключа здесь немедленно прекращает доступ для соответствующего пользователя. Перед редактированием файла рекомендуется создать резервную копию, чтобы избежать случайной блокировки.

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

Удаление публичного ключа из файла authorized_keys на сервере

Удаление публичного ключа из файла authorized_keys на сервере

Файл ~/.ssh/authorized_keys хранит список публичных ключей, которым разрешён доступ к серверу по SSH. Для удаления ключа необходимо выполнить точные шаги, чтобы не нарушить доступ других пользователей.

  1. Подключитесь к серверу с правами пользователя, чьи ключи вы собираетесь редактировать.
  2. Создайте резервную копию файла перед изменением:

    cp ~/.ssh/authorized_keys ~/.ssh/authorized_keys.bak

  3. Просмотрите содержимое файла и найдите ключ, который требуется удалить:

    cat ~/.ssh/authorized_keys

  4. Удалите ключ вручную с помощью текстового редактора, например nano или vi:

    nano ~/.ssh/authorized_keys

    Удалите строку, содержащую публичный ключ, и сохраните изменения.

  5. Проверьте права доступа к файлу после редактирования:
    • Файл должен быть доступен только пользователю: chmod 600 ~/.ssh/authorized_keys
    • Директория ~/.ssh должна иметь права 700
  6. Для автоматического удаления можно использовать команду sed, указав точное содержание ключа:

    sed -i '/ssh-rsa AAAAB3... user@example.com/d' ~/.ssh/authorized_keys

  7. После удаления попробуйте подключение с другой учётной записи или ключом, чтобы убедиться, что доступ остался корректным для остальных пользователей.

Удаление приватного ключа с локальной машины

Удаление приватного ключа с локальной машины

Приватные SSH ключи хранятся в директории пользователя, обычно в ~/.ssh/. Основные файлы: id_rsa, id_ecdsa, id_ed25519 или их аналоги с расширением .pem. Перед удалением убедитесь, что ключ не используется для активных подключений или автоматизации.

Для удаления ключа используйте команду rm в терминале. Например: rm ~/.ssh/id_rsa удаляет приватный ключ RSA. Если ключ имеет нестандартное имя, укажите полный путь к файлу.

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

Проверка наличия ключей выполняется командой ls -l ~/.ssh/. Это позволяет убедиться, что нужные файлы удалены и не осталось резервных копий, которые могут использоваться для доступа.

Для дополнительной безопасности рекомендуется удалить старые или неиспользуемые ключи из менеджеров ключей, таких как ssh-agent, командой ssh-add -d /путь/к/ключу.

Проверка наличия SSH ключей на сервере и локальной машине

Проверка наличия SSH ключей на сервере и локальной машине

Для локальной машины откройте терминал и выполните команду ls -l ~/.ssh/. В каталоге ~/.ssh обычно хранятся приватные ключи (id_rsa, id_ecdsa, id_ed25519) и соответствующие публичные ключи (id_rsa.pub, id_ecdsa.pub, id_ed25519.pub).

Для проверки конкретного ключа используйте ssh-add -l, чтобы увидеть загруженные в ssh-agent ключи. Если ssh-agent не запущен, его можно активировать командой eval "$(ssh-agent -s)".

На сервере проверьте файл ~/.ssh/authorized_keys. Он содержит список публичных ключей, разрешённых для входа. Используйте команду cat ~/.ssh/authorized_keys или grep "ключ" ~/.ssh/authorized_keys для поиска конкретного ключа.

Для систем с несколькими пользователями повторите проверку для каждого пользователя, имеющего доступ по SSH. Это позволит выявить все ключи, которые могут быть активными.

Регулярная проверка наличия ключей помогает контролировать доступ и предотвращает накопление устаревших или неиспользуемых ключей на сервере и локальной машине.

Удаление ключа из SSH-агента на локальной машине

SSH-агент хранит приватные ключи в памяти для упрощения аутентификации без повторного ввода пароля. Для удаления конкретного ключа из агента используется команда ssh-add -d путь_к_ключу. Путь указывается до приватного файла ключа, обычно это ~/.ssh/id_rsa или другой пользовательский файл.

Если необходимо удалить все ключи из агента, применяется команда ssh-add -D. Это гарантирует, что агент не будет использовать ни один из ранее загруженных ключей для новых SSH-сессий.

В таблице ниже приведены команды и их назначение:

Команда Описание
ssh-add -l
ssh-add -d путь_к_ключу Удаляет указанный ключ из SSH-агента
ssh-add -D Удаляет все ключи из SSH-агента

После удаления ключа из агента новые подключения с его использованием потребуют повторного добавления ключа или прямого указания файла ключа при подключении через ssh -i путь_к_ключу.

Удаление ключа из Git или других приложений, использующих SSH

Удаление ключа из Git или других приложений, использующих SSH

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

Удаление из локального SSH-агента выполняется командой ssh-add -d /путь/к/ключу. Это удаляет ключ из памяти агента без удаления файла с диска.

Если ключ добавлен в Git-платформу, его удаляют через веб-интерфейс. На GitHub: Settings → SSH and GPG keys → Delete. На GitLab: User Settings → SSH Keys → Remove. После этого ключ больше не будет предоставлять доступ к репозиториям.

Для приложений, использующих ключи напрямую, удалите путь к ключу из конфигурации или переменных окружения. Например, переменные SSH_PRIVATE_KEY или id_rsa в настройках CI/CD проектов.

Проверку удаления проводят командой ssh -T git@адрес_сервера. Если доступ закрыт, ключ удалён корректно.

Удаление ключа из конфигурации SSH (файл config)

Удаление ключа из конфигурации SSH (файл config)

Файл конфигурации SSH обычно находится по пути ~/.ssh/config. В нём содержатся записи вида:

Host имя_хоста
HostName адрес_сервера
User имя_пользователя
IdentityFile путь_к_ключу

Для удаления ключа необходимо открыть файл любым текстовым редактором, например, с помощью команды nano ~/.ssh/config.

Найдите блок Host, который использует удаляемый ключ, и удалите строку IdentityFile или весь блок, если он полностью посвящён этому ключу. После редактирования сохраните изменения.

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

После удаления ключа рекомендуется проверить конфигурацию командой ssh -T имя_хоста, чтобы убедиться, что SSH использует корректный ключ или запрашивает ввод нового.

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

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

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

Для проверки выполните следующие действия:

  • Попытайтесь подключиться к серверу с локальной машины, где ключ был удалён:
  • ssh user@server_address
  • Если ключ удалён правильно, сервер должен запросить пароль или отказать в доступе, в зависимости от настроек аутентификации.
  • Для проверки конкретного ключа используйте команду с явным указанием файла ключа:
  • ssh -i /path/to/key user@server_address
  • Если ключ больше не действителен, подключение не состоится, и будет выдано сообщение о недопустимой аутентификации.

Дополнительно рекомендуется проверить журнал сервера для фиксации попыток подключения:

  • На Linux-серверах чаще всего используйте:
  • sudo tail -f /var/log/auth.log
  • Для других систем путь к журналу может отличаться: /var/log/secure или специализированные журналы SSH.

Если используется SSH-агент, убедитесь, что ключи удалены из него:

ssh-add -l

Список не должен содержать удалённый ключ. В противном случае используйте:

ssh-add -d /path/to/key

Проверка доступа гарантирует, что старые ключи не представляют угрозу безопасности и что новая конфигурация SSH работает корректно.

Вопрос-ответ:

Как полностью удалить SSH ключ с локальной машины?

Для удаления SSH ключа на локальной машине нужно удалить файлы ключей, обычно находящихся в папке ~/.ssh/. Например, приватный ключ может называться id_rsa, а публичный — id_rsa.pub. Используйте команду rm ~/.ssh/id_rsa ~/.ssh/id_rsa.pub. После удаления убедитесь, что ключ больше не используется SSH-агентом с помощью ssh-add -l. Если ключ есть в списке, удалите его командой ssh-add -d ~/.ssh/id_rsa.

Что делать с ключом, который был добавлен на сервер в файл authorized_keys?

На сервере SSH ключи хранятся в файле ~/.ssh/authorized_keys. Чтобы удалить ключ, откройте файл и удалите соответствующую строку с публичным ключом. Можно использовать команду nano ~/.ssh/authorized_keys или vim ~/.ssh/authorized_keys. После удаления убедитесь, что сохранены права доступа к папке .ssh и файлу authorized_keys — обычно 700 для папки и 600 для файла.

Как проверить, что удаленный SSH ключ больше не дает доступ к серверу?

После удаления ключа на сервере попробуйте подключиться с помощью этого ключа. Если подключение отклоняется и сервер запрашивает пароль или закрывает соединение, ключ успешно удален. Также можно проверить файл authorized_keys на сервере, убедившись, что ключ отсутствует. На локальной машине убедитесь, что SSH-агент не содержит удаленный ключ с помощью ssh-add -l.

Нужно ли удалять SSH ключ из конфигурации SSH на локальной машине?

Да, если в файле ~/.ssh/config был указан удаляемый ключ, его следует убрать. В противном случае SSH будет пытаться использовать несуществующий ключ, что приведет к ошибкам подключения. Найдите строки IdentityFile с именем удаляемого ключа и удалите их или закомментируйте, чтобы SSH использовал другие доступные ключи.

Как удалить SSH ключ из Git и других приложений, использующих SSH?

Git и сторонние приложения могут хранить ключи для доступа к репозиториям или серверам. В Git для удаления ключа нужно проверить настройки SSH через git config --global и удалить указание на ключ. Для платформ вроде GitHub, GitLab или Bitbucket удалите соответствующий публичный ключ в настройках аккаунта. После этого попытки подключения с этим ключом будут отклонены.

Ссылка на основную публикацию