如何使用paramiko模拟键盘交互式ssh登录?

时间:2010-02-12 19:50:48

标签: python authentication ssh paramiko

我正在尝试自动化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)

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:-1)

你想要的是来自pxpect项目的pxssh。查看sshls.py和ssh_tunnel.py示例。

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