Home » Программирование » Короткие заметки » Обновление SSH-ключа сервера в known_hosts

Обновление SSH-ключа сервера в known_hosts

Однажды наш сисадмин обновил корпоративный gitlab, назовём его gitlab.mycorp.org, в результате чего возникли проблемы с подключением к этому серверу из-за смены открытого ключа во всех файлах known_hosts тех хостов, которые к нему ранее подключались.

Выражается это в грозных предупреждениях от SSH-клиента при попытке что-то запушить в репозиторий

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

а также при попытке что-либо обновить/установить с помощью composer.json:

Failed to update git@gitlab.mycorp.org:user/somepackage.git, package information from this repository may be outdated

Задача в том, чтобы обновить эти записи на всех хостах.

Сначала необходимо удалить старый ключ. Это можно сделать вручную, если информация о сервере не захеширована. В открытом виде она часто хранится на Windows. Если зашифрована, как на современных linux-системах, то удаляем его такой командой:

ssh-keygen -R gitlab.mycorp.org

Затем при повторной попытке соединения с сервером нам будет предложено добавить его публичный ключ в файл known_hosts и проблема будет решена.

Для серверов с git-репозиториями для этого подойдёт команда:

ssh -T git@gitlab.mycorp.org

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

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Do NOT follow this link or you will be banned from the site!