SSHCommandClientEndpoint. Как отключить verifyHostKey?

Я использую SSHCommandClientEndpoint для выполнения некоторых команд. Мне нужно отключить verifyHostKey. Я имею в виду, чтобы переопределить этот метод:

def verifyHostKey(self, hostKey, fingerprint):
    return defer.succesed(True)

Я нашел этот метод в классе _CommandTransport, но я не знаю, как правильно отключить его. Как это сделать правильно?

1 ответ

Решение

Я думаю, что вы, возможно, задали здесь не тот вопрос - но, к счастью, я могу догадаться, какой вопрос вы хотели задать.

Первый: почему этот вопрос не так? Вы спросили, как изменить частную реализацию API, который вы пытаетесь использовать. Вы не поставили цель кроме внесения этого изменения. Всем известно, что правильным ответом на этот вопрос может быть то, что вы должны открыть исходный файл и начать его редактирование.

Учитывая предложенный код замены:

def verifyHostKey(self, hostKey, fingerprint):
    return defer.succesed(True)

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

Вы можете сделать это, указав альтернативное значение для knownHosts аргумент SSHCommandClientEndpoint.newConnection, Как сказано в документации API:

@param knownHosts: The currently known host keys, used to check the
    host key presented by the server we actually connect to.
@type knownHosts: L{KnownHostsFile}

В идеале этот параметр должен быть задокументирован как принимающий объект, который обеспечивает определенный абстрактный интерфейс, чтобы вы могли быть более уверены в том, что альтернативная реализация будет работать (и продолжит работать со временем). К счастью, в этом случае единственным требованием knownHosts Объект в том, что он реализует свой собственный verifyHostKey метод.

Вы можете реализовать что-то вроде этого:

class PermissiveKnownHosts(object):
    def verifyHostKey(self, ui, hostname, ip, key):
        return succeed(True)
Другие вопросы по тегам