Как с помощью paramiko имитировать вход по ssh с клавиатурой в интерактивном режиме?

Я пытаюсь автоматизировать ssh-соединение и управление сетевым устройством, которое по какой-то причине разрешает только интерактивную аутентификацию с клавиатуры. Не похоже, что paramiko поддерживает это по умолчанию или со стандартным объектом sshclient ().

Я провел последние пару дней, просматривая документацию paramiko, пытаясь понять это, и это самое близкое, что мне удалось заставить работать.

import paramiko
import socket

def ihandler(title,instructions,prompt_list):
  return 'pass'


if __name__=="__main__":
  paramiko.common.logging.basicConfig(level=paramiko.common.DEBUG)
  s=socket.socket()
  s.connect(('localhost',22))
  t=paramiko.Transport(s)
  t.set_log_channel("paramiko.transport")
  t.start_client()
  t.auth_password('user','pass')
  t.auth_interactive ('user',ihandler)

Любая помощь будет принята с благодарностью.


person Chad Baker    schedule 12.02.2010    source источник
comment
Это может быть то, что вы ищете: stackoverflow.com/questions/1911690/   -  person jathanism    schedule 13.02.2010


Ответы (1)


Вам нужен pxssh из проекта pxpect. Посмотрите примеры sshls.py и ssh_tunnel.py.

http://www.noah.org/wiki/Pexpect

person snies    schedule 10.03.2010