Выключите строгую проверку ssh ключей

Запишите сценарий для изменения свойств ldap userobjects. Любой язык сценариев с желанием функций ldap должен работать. VBS является наиболее часто используемым, но py должен быть столь же легким или легче.

http://www.eggheadcafe.com/software/aspnet/34024702/changing-username-in-active-directory-using-vbscript.aspx

8
задан 4 September 2015 в 15:00
4 ответа

Замечательная функция HostKeyAlias ​​ решает вашу проблему:

ssh -o HostKeyAlias=hostkeyalias__vm_2013-05-11_07 user@host

создает запись hostkeyalias__vm_2013-05-11_07 (без IP) в known_hosts . Конечно, вы можете написать сценарий или функцию оболочки, которая устанавливает это значение перед каждым вызовом ssh. Или вы используете переменную оболочки:

HOSTKEYALIAS=hostkeyalias__vm_2013-05-11_07
ssh -o HostKeyAlias=$HOSTKEYALIAS user@host

и меняете $ HOSTKEYALIAS всякий раз, когда изменяется виртуальная машина. Время от времени старые записи следует удалять из known_hosts .

14
ответ дан 2 December 2019 в 22:44

создать ~ / .ssh / config с содержимым:

Host *
    StrictHostKeyChecking no

Также вы можете создать псевдоним для ssh для:

ssh -o StrictHostKeyChecking=no
7
ответ дан 2 December 2019 в 22:44

Вы можете получить новый ключ хоста из консоли виртуальной машины и обновить известные hosts после загрузки экземпляра.

0
ответ дан 2 December 2019 в 22:44

Проблема в том, что ssh предполагает соответствие 1: 1 между IP-адресами и хостами. Нам нужно разорвать это сопоставление только для IP-адресов ваших облачных серверов.

Решение

Добавьте следующий раздел в ваш файл ~ / .ssh / config .

# Disable HostKey checking for servers which frequently change keys
Host 172.16.24.32  172.16.24.33  172.16.24.34
    UserKnownHostsFile /dev/null
    StrictHostKeyChecking no

Просто измените IP-адреса, и все готово.

Необязательно: Альтернатива для диапазонов IP-адресов

Если вы хотите применить это к сетевому блоку, например 192.168 / 16, вы можете использовать подстановочные знаки примерно так:

# Do not keep HostKeys for internal networks.
Host 10.?.?.?  192.168.?.?
    UserKnownHostsFile /dev/null
    StrictHostKeyChecking no

Необязательно: Использование имен хостов

В исходном вопросе упоминались IP-адреса, но вы, конечно, можете использовать вместо них имена хостов. Например, это будет соответствовать ssh instance32.vm.yoyodyne.com :

Host *.vm.yoyodyne.com
    UserKnownHostsFile /dev/null
    StrictHostKeyChecking no

Если вы хотите использовать и имена хостов, и IP-адреса, вам необходимо явно указать оба, поскольку SSH не соответствует на разрешил IP-адрес. Например, если у вас есть ssh ourvm.local в качестве ярлыка для ssh 192.168.1.53 :

Host 192.168.1.53  ourvm.local
    UserKnownHostsFile /dev/null
    StrictHostKeyChecking no

Caveat

Будьте осторожны при обходе ssh ' модель безопасности. В частности, дважды проверьте, что ваши подстановочные знаки не соответствуют ни одному из подлинных серверов, HostKeys которых не будет изменяться.


¹ Почему / dev / null? Я бросаю данные KnownHosts в битовую корзину, потому что только установка StrictHostChecking no удаляет предупреждение, но по-прежнему отказывается подключаться. Это глупо, поэтому я предполагаю, что OpenSSH в конечном итоге изменит поведение или добавит новый параметр. Если и когда появится лучшее решение, я обновлю этот ответ.

2
ответ дан 2 December 2019 в 22:44

Теги

Похожие вопросы