Source code for ufrc.ssh.client

import paramiko


[docs]class SSHClient(paramiko.SSHClient):
[docs] def handler(self, title, instructions, prompt_list): answers = [] for prompt_, _ in prompt_list: prompt = prompt_.strip().lower() print("'" + prompt + "'", prompt.startswith("Duo two-factor login")) if prompt.startswith("password"): answers.append(self.password) # TODO: Add ability to pass option 2 for a phone call elif prompt.startswith("duo two-factor login"): answers.append("1") else: raise ValueError("Unknown prompt: {}".format(prompt_)) return answers
[docs] def auth_interactive(self, username, handler): self._transport.auth_interactive(username, handler)
def _auth(self, username, password, pkey, *args): self.password = password return self.auth_interactive(username, self.handler)