Как добавить отпечаток SSH в файл known_hosts в Linux
5 декабря 2024 г.Допустим, вы написали скрипт bash, который сканирует все ваши серверы Linux в вашем центре обработки данных на предмет работоспособности. Такой файл может содержать следующее содержимое:
ssh $1 "время безотказной работы"
При запуске вашего скрипта он может быть сорван из-за проблемы, когда он останавливается сервером, который еще не добавил свой SSH-ключ-отпечаток в файл known_hosts. Когда это происходит, ваш скрипт становится бесполезным.
СМ.: Как просмотреть ключи SSH в Linux, macOS и Windows (TechRepublic)
Отпечаток ключа SSH
Что такое отпечаток ключа SSH? Просто: отпечаток ключа проверяется, когда вы пытаетесь войти на удаленный компьютер с помощью SSH. Когда вы впервые входите на сервер SSH, вы увидите что-то вроде того, что показано ниже.
Если вы не примете отпечаток, соединение будет немедленно разорвано. Так что же происходит, когда вы работаете со скриптом bash, который не может принять ввод, чтобы одобрить добавление удаленного отпечатка SSH?
К счастью, разработчики SSH подумали об этом и добавили команду, которая позволяет легко добавлять отпечатки SSH в файл known_hosts.
СМ.: Как создать и скопировать ключи SSH с помощью двух простых команд (TechRepublic)
Добавление отпечатка пальца
Я продемонстрирую добавление отпечатка с удаленного сервера на локальную машину. Допустим, удаленный сервер находится по адресу 192.168.1.162. Чтобы добавить этот отпечаток, команда будет такой:
ssh-keyscan -H 192.168.1.162 >> ~/.ssh/known_hosts
Команда будет запущена и добавит удаленный SSH-отпечаток на локальную машину без вашего участия, как показано ниже.
Таким образом, дополнение к скрипту bash может выглядеть так:
ssh-keyscan $1 >> ~/.ssh/known_hosts
Вышеуказанное добавление возьмет аргумент из команды (например, ./script 192.168.1.118) и добавит отпечаток в ~/.ssh/known_hosts, прежде чем он перейдет на следующую строку — тем самым избежав проблемы с отсутствующим отпечатком SSH. Конечно, вышеприведенное будет работать правильно только в том случае, если у вас настроена аутентификация по ключу ssh. В противном случае вам придется ввести пароль удаленной машины.
СМ.: Как монтировать удаленные каталоги с помощью SSH (TechRepublic)
Простые вещи
Иногда это простые вещи, которые мешают нашим скриптам bash. Если эта проблема с отпечатком ключа доставляла вам головную боль в ваших скриптах, теперь вы можете ее избежать.
Оригинал