Теперь это возможно и через программный центр! Перейдите в «История», и вы сможете отображать все ваши обновления и установки.
Да, вы можете удалить только один ключ. Просто откройте его в редакторе и удалите оскорбительную строку. Число после двоеточия в сообщении об ошибке - номер строки, поэтому это строка для удаления - строка 1 в вашем примере ..
Я только недавно начал использовать хост-ключ, но когда я перепутал с ними, это, как правило, один ключ в каждой строке, поэтому создайте резервную копию файла и удалите его по одному, пока не найдете правильный. Затем добавьте остальных.
Также, основываясь на этой ошибке и не представляя, что это такое, это может быть первый ключ хоста в файле, который является проблемой настолько открытой вверх по файлу с vim
vim ~/.ssh/known_hosts
и нажмите
dd
, затем сохраните его.
Использование ssh-keygen -R hostname не всегда будет работать. Если у вас есть более новая версия SSH, которая «скрывает» имена хостов, чтобы предотвратить захват ssh-agent, очевидно, что ssh-keygen не может разобрать имя хоста.
Например, у меня есть хост с именем build- node-01, и я подключился к нему и принял ключ. Затем я перестраиваю его с нуля, получая новый отпечаток от хоста, и я пытаюсь подключиться, я получу предупреждение о конфликте в строке X (скажем, 3). Я запускаю ssh-keygen -R hostname, но в следующий раз, когда я пытаюсь подключиться, я все еще получаю предупреждение о конфликте. Я просмотрел файл только для того, чтобы узнать, что имя хоста было хэшировано и появилось как [1] Bu4Ch@R@4D0M57uFF вместо читаемого имени хоста.
В этом случае единственный способ успешно удалить удаляющий хост-узел - использовать
sed -i 'xd' ~/.ssh/known_hosts
Чтобы сделать это sed еще одним шагом, вы можете сделать резервную копию known_hosts на случай, если вы удалите неправильную строку, в этом случае просто добавьте .bak (или любое расширение) в - i, чтобы создать резервную копию с этим расширением. Использование ssh-keygen делает это автоматически.
sed -i.bak 'xd' ~/.ssh/known_hosts
Просто чтобы поделиться другим простым и легким ответом, я только что нашел. Удаление имени хоста для меня, так как файл known_hosts хэшируется. Однако, я МОЖЕТ вручную отредактировать запись хоста на основе номера строки в сообщении об ошибке. Как уже отмечал Майк Скотт, в сообщении об ошибке содержится номер строки номера вызывающего абонента.
Или я могу это сделать. Отсюда: как исправить оскорбительный ключ в файле ssh known_hosts
Я получил этот бит волшебства cli
sed -i 'xd' ~/.ssh/known_hosts
Замените x номером строки и voila. Он также предлагает ответ perl, если sed не будет работать.
sed '/10\.20\.120\.211/d' ~/.ssh/known_hosts > temp && mv temp ~/.ssh/known_hosts
В этом случае 10.20.120.211 - это хост, который я хочу удалить из моего файла known_hosts, убедитесь, что вы выбрали специальные символы, такие как (.)