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

Обновлено: 06.07.2024

В течение последних нескольких недель я создал несколько виртуальных машин. Проблема в том, что .ssh/known_hosts дает мне Человек в середине предупреждение. Это происходит потому, что другой IP-адрес связан с IP-адресом виртуальной машины.

Однако в файле .ssh/known_hosts я не нахожу запись, связанную с IP, только две причудливые ключевые строки и «ssh-rsa».

Есть ли у кого-нибудь идеи о том, как удалить старый ключ из known_hosts ?

/.ssh /known_hosts: 6, удалив 6-ю строку.

По-моему, использование ssh-keygen -R - лучшее решение для пользователя с полномочиями openssh, в то время как ваш обычный администратор Linux лучше бы сохранил свои навыки sed, используя выше метод.

Самое простое решение:

ssh снова воссоздает файл, но вы потеряете проверку ключа для других хостов!

Или вы можете использовать:

Для этого есть переключатель ssh-keygen (-R).

man ssh-keygen читает:

-R имя хоста Удаляет все ключи, принадлежащие имени хоста, из файла known_hosts. Эта параметр полезен для удаления хэшированных хостов (см. выше -H).

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

См. раздел /home/user/.ssh/known_hosts:6 ? Он указывает номер файла и строки.

Вы также можете указать ssh не проверять файл known_hosts, используя флаги UserKnownHostsFile и StrictHostKeyChecking.

Для удобства использования вы можете использовать псевдоним:

Теперь вы можете просто boldssh, когда вы уверены, что доверяете сертификату сервера.

Вам нужно запустить следующую команду, чтобы избавиться от этой проблемы. Откройте терминал и введите следующую команду:

Вы также можете удалить одну строку из известных хостов, например. rmknownhost 111 (111 - линия для удаления):

Сохраните это как rmknownhost в папке из PATH .

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

Это текстовый файл. Вы можете легко редактировать с помощью vi (m) и просто удалить соответствующую строку (dd) и сохранить файл (wq). Но если есть определенная команда для удаления хоста, это, вероятно, самый безопасный метод.

Все ответы хороши, но для реального SSH pro у нас отсутствует информация о том, как удалить ssh-подпись с номером порта.

например. вы подключаетесь к

, и вы получите предупреждение, и, чтобы удалить это, вам нужно использовать квадратный квадрат номера порта:

/.ssh каталог (с оригиналом id_rsa и id_rsa.pub файлами).

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

Я попробовал следующую команду без успеха:

введите описание изображения здесь

Есть ли способ полностью удалить ключ SSH?

Проверьте ваши сокеты, которые использует ваш ssh-agent (1).

ssh-add -d/-D удаляет только вручную добавленные ключи из gnome-keyring.
Нет способа удалить автоматически добавленные ключи.
Это оригинальная ошибка, и она по-прежнему присутствует.

Так, например, если у вас есть две разные автоматически загруженные идентификационные данные ssh, связанные с двумя разными учетными записями GitHub - скажем, для работы и для дома - нет способа переключаться между ними. GitHub использует первый подходящий вариант, поэтому вы всегда появляетесь на GitHub как «домашний» пользователь, и у вас нет возможности загружать вещи в рабочие проекты.

Разрешение ssh-add -d применять к автоматически загружаемым ключам (и ssh-add -t X изменять время жизни автоматически загружаемых ключей) восстановит поведение, ожидаемое большинством пользователей.

Точнее, по вопросу:

  • Он подрывает обычную работу ssh-agent, в основном просто для того, чтобы он мог выдать красивое окно, в которое можно ввести фразу-пароль для зашифрованного ключа ssh.
  • Он просматривает ваш .ssh каталог и автоматически добавляет любые ключи, которые он находит, вашему агенту.
  • И это не позволит вам удалить эти ключи.

Эта ошибка все еще подтверждается в Ubuntu 14.04.4, всего два дня назад (21 августа 2014 г.)

Возможный обходной путь:

  • Делать, ssh-add -D чтобы удалить все ваши добавленные вручную ключи. Это также блокирует автоматически добавленные ключи, но не очень полезно, так gnome-keyring как попросит вас разблокировать их в любом случае, когда вы попытаетесь сделать a git push .
  • Перейдите в свою

Другой обходной путь:

То, что вы действительно хотите сделать, это gpg-keyring-daemon вообще отключить .
Перейти System --> Preferences --> Startup Applications и отменить выбор SSH Key Agent (Gnome Keyring SSH Agent) флажок " - вам нужно прокрутить вниз, чтобы найти его.

Вы все равно получите ssh-agent , только теперь он будет вести себя разумно: ключи не загружаются автоматически, вы запускаете ssh-add, чтобы добавить их, и если вы хотите удалить ключи, вы можете это сделать. Представьте себе, что.

Решение состоит в том, чтобы gnome-keyring-manager не запускаться никогда, что было странным образом затруднено, в конечном итоге, путем удаления разрешения на выполнение программного файла.

Райан Лю добавляет еще один интересный случай в комментариях :

На случай, если это кому-нибудь поможет: я даже попытался удалить id_rsa и id_rsa.pub файлы вообще, а ключ был все еще показывает вверх.

Оказывается, gpg-agent кэшировал их в

/.gnupg/sshcontrol файле ; Я должен был вручную удалить их оттуда.

Другой вариант в Ubuntu 14-16 - использовать графический интерфейс «Пароли и ключи» (вы можете найти ssh, чтобы найти его). Выберите, например, ключи OpenSS, затем щелкните правой кнопкой мыши ключ и выберите «Удалить». Вам может потребоваться перезагрузить систему, чтобы увидеть, что она удалена. Почему эта информация о ssh-agent и ssh-add выбранный ответ? Оригинальный плакат сказал, что хочет remove the old SSH key directly on the server and upload a new one . Похоже, он хочет редактировать

/.ssh/authorized_keys на удаленном хосте.

Этот ответ привел меня к решению проблемы с включенной пересылкой ssh. При переходе с компьютера с Ubuntu 16.04 на систему Debian, куда пересылаются все учетные данные ssh, git clone использовался первый ключ в цепочке вместо версии в файле конфигурации в окне Ubuntu. Плохой ключ автоматически засасывался и отправлялся в ящик Debian. Это настоящая боль в тылу. Я работаю над проектами компании и по контракту работаю в другой компании. Это просто добавляет потраченное время на управление обоими. Я надеюсь, что исправление придет в ближайшее время! В случае , если это помогает любому: я даже пытался вычеркивания id_rsa и id_rsa.pub файлы вообще, а ключ был все еще показывает вверх. Оказывается, gpg-agent кеширует их в

/.gnupg/sshcontrol файле; Я должен был вручную удалить их оттуда.

Если вы пытаетесь выполнить операцию, связанную с ssh, и получаете следующую ошибку:

Вы можете удалить отсутствующий ключ ssh из вашего агента ssh следующим образом:

Если не ошибаюсь, вы потеряли свой .ssh каталог, содержащий ваш закрытый ключ, на вашем локальном компьютере, и поэтому вы хотите удалить открытый ключ, который был на сервере и который позволял входить на основе ключа. В этом случае он будет храниться в .ssh/authorized_keys файле в вашем домашнем каталоге на сервере. Вы можете просто отредактировать этот файл с помощью текстового редактора и удалить соответствующую строку, если вы можете определить его (даже проще, если это единственная запись!). Надеюсь, этот ключ был не единственным способом доступа к серверу, и у вас есть другой способ войти в систему и отредактировать файл. Вы можете вручную добавить новый открытый ключ в authorised_keys файл или использовать ssh-copy-id . В любом случае вам потребуется пароль, установленный для вашей учетной записи на сервере, или другой способ идентификации или доступа, чтобы получить доступ к authorized_keys файлу на сервере.

ssh-add добавляет идентификационные данные к вашему ssh-агенту, который локально управляет вашими идентификационными данными, и «соединение с агентом перенаправляется через удаленные входы SSH, и пользователь может таким образом безопасно использовать привилегии, предоставляемые идентификационными данными в любом месте сети». (man page), так что я не думаю, что это то, что вы хотите в этом случае. Насколько я знаю, он не может получить ваш открытый ключ на сервер, если у вас нет доступа к нему через логин ssh.

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

Я открыл приложение «Пароли и ключи» в своем Unity и удалил ненужные ключи из ключей Secure Keys -> OpenSSH. И они также автоматически были удалены из ssh-agent -l .

Остерегайтесь, что это также удаляет их из каталога

Я могу подтвердить, что эта ошибка все еще присутствует в Ubuntu 19.04. Обходной путь, предложенный @VonC, работал отлично, суммируя для моей версии:

  • Нажмите на вкладку Действия в верхнем левом углу.
  • В появившемся окне поиска начните вводить «запуск приложений»
  • Нажмите на значок «Запуск приложений»
  • В появившемся окне выберите приложение менеджера ключей gnome (не могу вспомнить точное имя в графическом интерфейсе, но оно достаточно различимо) и удалите его.

Затем я попытался ssh-add -D снова, и после перезагрузки ssh-add -l сказал мне, что у агента нет идентификаторов. Я подтвердил, что у меня все еще ssh-agent работает демон ps aux | grep agent . Поэтому я добавил ключ, который чаще всего использую с GitHub ( ssh-add

/.ssh/id_ecdsa ), и все хорошо!

Теперь я могу выполнять обычные операции с моим наиболее часто используемым репозиторием, и если мне иногда требуется доступ к другому репозиторию, использующему ключ RSA, я просто выделяю для этого один терминал export GIT_SSH_COMMAND="ssh -i /home/me/.ssh/id_rsa.pub" . Решено! Благодарим @VonC за указание на ошибку и решение.

Проверьте ключ .ssh или нет в вашей системе

  1. Перейдите в папку -> /Users/administrator/.ssh/id_ed25519.pub

Если не чем

Прошлое в терминале

Удалить существующий ключ .ssh

    Удалить существующий ключ .ssh -> rm

Создать новый

Создать новый ключ .ssh -> ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Открытый ключ был сохранен в "/Users/administrator/.ssh/id_ed25519.pub."

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

Я безуспешно попробовал следующую команду:

Enter image description here

Есть ли способ полностью удалить ключ SSH?

Обратите внимание, что существует как минимум два отчета об ошибках для ssh-add -d/-D не удаления ключей:

ssh-add -d/-D удаляет только добавленные вручную ключи из gnome-keyring.
Невозможно удалить автоматически добавленные ключи.
Это изначальная ошибка, и она определенно присутствует.

Так, например, если у вас есть два разных автоматически загружаемых идентификатора ssh, связанных с двумя разными учетными записями GitHub - скажем, для работы и для дома - нет возможности переключаться между ними. GitHub принимает первый из подходящих, поэтому вы всегда будете отображаться на GitHub как «домашний» пользователь без возможности загружать что-либо в рабочие проекты.

Разрешение применения ssh-add -d к автоматически загружаемым ключам (и ssh-add -t X для изменения времени жизни автоматически загружаемых ключей) восстановило бы поведение, ожидаемое большинством пользователей.

Точнее о проблеме:

  • Он нарушает нормальную работу ssh-agent, в основном для того, чтобы он мог вывести красивое окно, в котором вы можете ввести парольную фразу для зашифрованного ключа ssh.
  • И он роется в вашем каталоге .ssh и автоматически добавляет любые найденные ключи вашему агенту.
  • И он не позволит вам удалить эти ключи.

Эта ошибка все еще подтверждается в Ubuntu 14.04.4, всего два дня назад (21 августа 2014 г.).

Возможный обходной путь:

  • Выполните ssh-add -D , чтобы удалить все ваши вручную добавленные ключи. Это также блокирует автоматически добавляемые ключи, но от этого мало толку, поскольку gnome-keyring все равно попросит вас разблокировать их, когда вы попытаетесь выполнить git push .
  • Перейдите в папку

Другой обходной путь:

На самом деле вам нужно полностью отключить gpg-keyring-daemon .
Перейдите к System --> Preferences --> Startup Applications и снимите флажок " SSH Key Agent (Gnome Keyring SSH Agent) " - вам нужно прокрутить вниз, чтобы найти его.

Вы по-прежнему получите ssh-agent , только теперь он будет вести себя нормально: ключи не загружаются автоматически, вы запускаете ssh-add, чтобы добавить их, и если вы хотите удалить ключи, вы можете. Представь это.

Решение состоит в том, чтобы не дать gnome-keyring-manager когда-либо запускаться, что было странно трудным, поскольку в конечном итоге было достигнуто путем удаления разрешения на выполнение файла программы.

Райан Лю добавляет еще один интересный угловой случай в комментариях:

Если это кому-то поможет: я даже попытался удалить файлы id_rsa и id_rsa.pub вместе, но ключ все еще отображался.

Оказывается, gpg-agent кэшировал их в файле

/.gnupg/sshcontrol ; Пришлось вручную удалить их оттуда.

Это тот случай, когда keygrip был добавлен как здесь.

Если вы пытаетесь выполнить операцию, связанную с SSH, и получаете следующую ошибку:

Вы можете удалить отсутствующий ключ SSH из своего агента SSH с помощью следующих действий:

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

В этом случае он будет сохранен в файле .ssh/authorized_keys в вашем домашнем каталоге на сервере. Вы можете просто отредактировать этот файл в текстовом редакторе и удалить соответствующую строку, если сможете ее идентифицировать (даже проще, если это единственная запись!).

Я надеюсь, что этот ключ был не единственным способом доступа к серверу, и у вас есть другой способ входа в систему и редактирования файла. Вы можете вручную добавить новый открытый ключ в файл authorised_keys или использовать ssh-copy-id . В любом случае вам потребуется настроить аутентификацию по паролю для вашей учетной записи на сервере или какой-либо другой метод идентификации или доступа, чтобы получить доступ к файлу authorized_keys на сервере.

ssh-add добавляет идентификаторы к вашему SSH-агенту, который обрабатывает управление вашими идентификаторами локально, и "соединение с агентом пересылается через удаленные входы SSH, и пользователь, таким образом, может использовать привилегии, предоставленные идентификаторами в любом месте сети в безопасный способ ". (страница руководства), поэтому я не думаю, что в данном случае это то, что вам нужно. Насколько мне известно, у него нет никакого способа получить ваш открытый ключ на сервере, если у вас нет доступа к указанному серверу через вход в систему SSH.

Я открыл приложение «Пароли и ключи» в своем Unity и удалил ненужные ключи из ключей безопасности -> ключей OpenSSH И они также были автоматически удалены из ssh-agent -l .

Убедитесь, что папка .ssh находится в вашей системе

  1. Зайдите в папку -> /Users/administrator/.ssh/id_ed25519.pub

Если нет, то

Вставить в терминал

Удалить существующие ключи SSH

    Удалить существующие ключи SSH → rm

Создать

Создать новый ключ SSH → ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Открытый ключ был сохранен в "/Users/administrator/.ssh/id_ed25519.pub".

Откройте сохраненный путь открытого ключа.

Скопируйте ключ SSH → Учетная запись GitLab → Настройка → Ключ SSH → Добавить ключ

Я могу подтвердить, что эта ошибка все еще присутствует в Ubuntu 19.04 ( Дискотека Динго). Обходной путь , предложенный VonC , работал отлично, резюмируя для моя версия:

  • Щелкните вкладку "Действия" в верхнем левом углу.
  • В появившемся окне поиска начните вводить «запускаемые приложения».
  • Щелкните значок «Автозагрузка приложений».
  • В появившемся окне выберите приложение менеджера связки ключей gnome (не могу вспомнить точное имя в графическом интерфейсе пользователя, но оно достаточно отчетливо) и удалите его.

Затем я снова попробовал ssh-add -D , и после перезагрузки ssh-add -l сказал мне, что у агента нет удостоверений. Я подтвердил, что у меня все еще работает демон ssh-agent с ps aux | grep agent . Поэтому я добавил ключ, который чаще всего использовал с GitHub ( ssh-add

/.ssh/id_ecdsa ), и все было хорошо!

Теперь я могу выполнять обычные операции с моим наиболее часто используемым репозиторием, и если мне иногда требуется доступ к другому репозиторию, который использует ключ RSA, я просто выделяю для него один терминал с export GIT_SSH_COMMAND="ssh -i /home/me/.ssh/id_rsa.pub" . Решено! Благодарим VonC за указание на ошибку и решение.

Решение для меня (openSUSE Leap 42.3, KDE) должен был переименовать папку

/.gnupg , которая, по-видимому, содержала кэшированные ключи и профили.

После выхода / входа в KDE ssh-add / agent снова запускается, и папка создается с нуля, но все старые ключи ушли.

обратите внимание, что есть по крайней мере два отчета об ошибке для ssh-add -d/-D не удаление ключей:

ssh-add -d/-D удаляет только вручную добавлено ключи от gnome-брелок.
Невозможно удалить автоматически добавленные ключи.
Это оригинальная ошибка, и она все еще определенно присутствует.

Итак, например, если у вас есть два разных автоматически загружаемых идентификатора ssh, связанных с двумя разными учетными записями GitHub-скажем, для работы и для дома-есть не так для переключения между ними. GitHubtakes первый, который соответствует, поэтому вы всегда появляетесь как ваш "домашний" пользователь GitHub, без возможности загружать вещи в рабочие проекты.

позволяет ssh-add -d применить к автоматически загружены ключи (и ssh-add -t X чтобы изменить время жизни автоматически загружаемых ключей), восстановит поведение, ожидаемое большинством пользователей.

точнее, о проблеме:

  • это подрывает нормальную работу ssh-агента, в основном просто так, чтобы он может появиться красивое окно, в которое вы можете ввести парольную фразу для зашифрованного ключа ssh.
  • и он лапы через ваш .ssh каталог, и автоматически добавляет любые ключи, которые он находит для вашего агента.
  • и это не позволит вам удалить эти ключи.

эта ошибка по-прежнему подтверждается в Ubuntu 14.04.4, еще два дня назад (21 августа 2014)

  • Do ssh-add -D удалить все ваши вручную добавлены ключи. Это также замки автоматически добавляемые ключи, но не так много пользы с gnome-keyring попросит вас разблокировать их в любом случае, когда вы попытаетесь сделать git push .
  • перейти к

то, что вы действительно хотите сделать, это выключить gpg-keyring-daemon в целом.
Перейти к System --> Preferences --> Startup Applications и снимите флажок " SSH Key Agent (Gnome Keyring SSH Agent) " box -- вам нужно прокрутить вниз, чтобы найти его.

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

этот коммент на самом деле предполагает:

решение сохранить gnome-keyring-manager от когда-либо запуска, что было странно сложно, наконец, достигнуто путем удаления разрешения на выполнение файла программы.

если я не ошибаюсь, вы потеряли свой .ssh каталог, содержащий ваш закрытый ключ на локальном компьютере, и поэтому вы хотите удалить открытый ключ, который был на сервере и который разрешил вход на основе ключа. В этом случае он будет храниться в .ssh/authorized_keys файл в вашем домашнем каталоге на сервере. Вы можете просто отредактировать этот файл с помощью текстового редактора и удалить соответствующую строку, если сможете ее идентифицировать (еще проще, если это единственная запись!). Надеюсь, этот ключ был не единственным способом доступ к серверу, и у вас есть другой способ входа в систему и редактирования файла. Вы можете вручную добавить новый открытый ключ в authorised_keys файл или использовать ssh-copy-id . В любом случае, вам понадобится аутентификация пароля для вашей учетной записи на сервере или какой-либо другой метод идентификации или доступа, чтобы добраться до authorized_keys файл на сервере.

ssh-add добавляет идентификаторы к вашему агенту ssh, который обрабатывает управление вашими идентификаторами локально и " соединение с агентом пересылается по SSH удаленные логины, и пользователь может таким образом использовать привилегии, предоставленные идентификаторами в любом месте сети безопасным способом."(man page), поэтому я не думаю, что это то, что вы хотите в этом случае. Насколько мне известно, он не может получить Ваш открытый ключ на сервер без доступа к указанному серверу через SSH-логин.

Читайте также: