2017-01-18 5 views
-1

Мне нужно подключиться к серверу с помощью ssh из Python. Обычно я использую Paramiko, но этот сервер требует пароль, который отправляется на SMS после ввода пароля:Paramiko: пароль + sms-passcode autentification

C:\>ssh [email protected] 
AD Password: <password> 
Enter PASSCODE: <sms passcode> 

Можно ли с помощью Paramiko/Python

+0

Вы имеете в виду клавиатуру-интерактивную? –

+0

Я так думаю, так как код sms не отправляется до ввода пароля –

ответ

0

Я не знаю, если это право способ это сделать, но, похоже, это работает в моем случае:

def interactive_auth_handler(title, instructions, prompt_list): 
    if prompt_list: 
     if prompt_list[0][0]=="AD Password: ": 
      return [password] 
     return [getpass.getpass(prompt_list[0][0])] 
    return [] 


client = paramiko.SSHClient() 
client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
try: 
    client.connect(host, port, username=username, password=password, pkey=None) 
except paramiko.ssh_exception.SSHException as e: 
    transport = client.get_transport() 
    transport.auth_interactive(username, interactive_auth_handler)