- Mastering Python Networking
- Eric Chou
- 188字
- 2021-07-02 21:42:36
Pexpect and SSH
If you try to use the previous telnet example and just plug into a ssh session, you might find yourself pretty frustrated. You always have to include the username in the session, ssh new key question, and more such. There are many ways to make ssh sessions work, but luckily, Pexpect has a subclass called pxssh, which specializes setting up SSH connections. The class adds methods for login, logout, and various tricky things to handle many situation in the ssh login process. The procedures are mostly the same with the exception of login() and logout():
>>> from pexpect import pxssh
>>> child = pxssh.pxssh()
>>> child.login('172.16.1.20', 'cisco', 'cisco', auto_prompt_reset=False)
True
>>> child.sendline('show version | i V')
19
>>> child.expect('iosv-1#')
0
>>> child.before
b'show version | i VrnCisco IOS Software, IOSv Software (VIOS-ADVENTERPRISEK9-M), Version 15.6(2)T, RELEASE SOFTWARE (fc2)rnProcessor board ID 9MM4BI7B0DSWK40KV1IIRrn'
>>> child.logout()
>>>
Notice the 'auto_prompt_reset=False' argument in the login() method. By default, pxssh uses the shell prompt to synchronize the output. But since it uses the PS1 option for most of bash or Csh, they will error out on Cisco or other network devices.
- Extending Jenkins
- Spring Boot開發與測試實戰
- Visual Basic編程:從基礎到實踐(第2版)
- 數據結構(Python語言描述)(第2版)
- PHP+MySQL+Dreamweaver動態網站開發實例教程
- iOS應用逆向工程(第2版)
- Java高并發核心編程(卷1):NIO、Netty、Redis、ZooKeeper
- Unity 2018 Augmented Reality Projects
- OpenCV with Python Blueprints
- ASP.NET 4.0 Web程序設計
- Visual C++程序設計與項目實踐
- OpenCV 3.0 Computer Vision with Java
- Python Machine Learning Cookbook
- PHP+MySQL Web應用開發教程
- Data Manipulation with R(Second Edition)