Понедельник, 23 Сентябрь 2018

Скрипт для удаления всех SSH ключей определенного хоста в файле known_hosts

  •   
  • размер шрифта уменьшить размер шрифта увеличить размер шрифта
Оцените материал
(3 голосов)

Скрипт для удаления всех ключей определенного хоста в файле known_hostsПри подключении к различным *nix-системам посредством ssh в файл ~/.ssh/known_hosts ssh клиент записывает ключ сервера, определяющий уникальность системы, к которой производилось подключение. При последующем подключении к удаленной системе по этому же ip-адресу происходит проверка соответствия ключа сервера и, в том случае если ключ для данного хоста или ip-адреса изменился, подключение не будет установлено и на экран будет выведено предупреждение. Это необходимо для того, чтобы не произошла компрометация пароля в том случае, если данный ip-адрес теперь используется другой системой или, например, если произошла умышленная подмена для перехвата пары логин/пароль. Однако, бывает и вполне "легальная" смена ключа удаленного сервера, например, в том случае, если была переустановлена ОС или просто заменены ключи ssh сервера. В этом случае необходимо удалить запись о хосте в файле known_hosts с помощью команды ssh-keygen или удалить файл целиком, что не всегда удобно в том случае, если хосту назначено несколько ip-адресов. Скрипт, приведенный в данном примере автоматически найдет в файле known_hosts ключ, соответствующий как самому хосту, так и всем его ip-адресам, и удалит их, оставив без изменений всю остальную информацию.

Для создания скрипта скопируйте следующий код в любой текстовый редактор, например, vi или gedit:

#!/bin/bash

host="$1"

[[ $# -eq 0 ]] && { echo "Использование: $0 имя.хоста.com"; exit 1;}

ips=$(host "$host" | awk -F'address' '{ print $2}' | sed -e 's/^ //g')

ssh-keygen -R "$host"

for i in $ips

do

    ssh-keygen -R "$i"

done


Сохраните скрипт, например, под именем script.sh

Добавьте права на выполнения файлу скрипта:

chmod +x script.sh

Для использования скрипта, вызовите его, передав в качестве параметра хост, ключи которого необходимо удалить, например так:

./script.sh howtoit.ru

Комментарии  

Suslov
0 #1 Suslov 06.11.2015 21:21
8)
Цитировать

Добавить комментарий


Защитный код
Обновить

 

 

Scroll to top