Необходимо игнорировать HostKeyMismatch при входе в систему с использованием Net::SSH.start()

:paranoid => false в Net::SSH.start() вроде не работает

2 ответа

Решение

Вы можете передать Null-верификатор вместо false: :paranoid => Net::SSH::Verifiers::Null.new,

По сути, это то, что вы должны получить, передавая false, но это не всегда работает по какой-то причине.

Пожалуйста, обратите внимание, просто чтобы быть явным. Это не игнорирует исключение HostKeyMismatch, а даже не пытается проверить ключ хоста (исключение вообще не вызывается).

Просто хочу добавить еще одну вещь к этому.

Вы также можете использовать remember_host метод Net::SSH::HostKeyError записать этот хост и ключ в файле известных хостов.

Пример:

begin . . rescue Net::SSH::HostKeyError => e e.remember_host! retry end

Источник: http://www.rubydoc.info/github/net-ssh/net-ssh/Net/SSH/HostKeyError

Другие вопросы по тегам