我正在尝试自动化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)
非常感谢任何帮助。
答案 0 :(得分:-1)
你想要的是来自pxpect项目的pxssh。查看sshls.py和ssh_tunnel.py示例。