В настоящее время у меня есть старый ключ SSH, загруженный на сервер. Проблема в том, что я потерял свой ~/.ssh
каталог (с оригиналом id_rsa
и id_rsa.pub
файлами).
Следовательно, я хочу удалить старый ключ SSH прямо на сервере и загрузить новый.
Я попробовал следующую команду без успеха:
$> ssh-add -D
Есть ли способ полностью удалить ключ SSH?
ssh-add -d
?Ответы:
Обратите внимание, что существует по крайней мере два сообщения об ошибках для
ssh-add -d/-D
не удаления ключей:ssh-add -D
не удаляет ключ SSH изgnome-keyring-daemon
памяти »ssh-add -D
удаление всех удостоверений не работает. Кроме того, почему все удостоверения добавляются автоматически? »Точная проблема:
Точнее, по вопросу:
Эта ошибка все еще подтверждается в Ubuntu 14.04.4, всего два дня назад (21 августа 2014 г.)
Возможный обходной путь:
Другой обходной путь:
Этот комментарий фактически предлагает:
Райан Лю добавляет еще один интересный случай в комментариях :
Это тот случай , когда был добавлен , как здесь .
keygrip
источник
ssh-agent
иssh-add
выбранный ответ? Оригинальный плакат сказал, что хочетremove the old SSH key directly on the server and upload a new one
. Похоже, он хочет редактировать~/.ssh/authorized_keys
на удаленном хосте.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 .
источник
~/.ssh
Я могу подтвердить, что эта ошибка все еще присутствует в Ubuntu 19.04. Обходной путь, предложенный @VonC, работал отлично, суммируя для моей версии:
Затем я попытался
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 или нет в вашей системе
Если не чем
Прошлое в терминале
Удалить существующий ключ .ssh
Создать новый
Создать новый ключ .ssh -> ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Открытый ключ был сохранен в "/Users/administrator/.ssh/id_ed25519.pub."
источник
Решение для меня (OpenSuse Leap 42.3, KDE) состояло в том, чтобы переименовать папку,
~/.gnupg
которая, очевидно, содержала кэшированные ключи и профили. После выхода из системы / входа в KDE ssh-add / agent снова запускается, и папка создается с нуля, но старые ключи исчезли.У меня не было успеха с другими подходами.
источник