我想知道是否有可能使用 python 脚本连接到路由器并通过 ssh 连接控制接口(interface)(关闭、重新启动无线网络等)。
到目前为止我写了这些行,但它仍然不起作用。当我查看终端时,我看到当我的脚本应该回显路由器的密码以完成连接时,一切都被阻止了。请问我该如何更正?
这是几行:
import os, urllib, urllib2, re
def InterfaceControl():
#os.system("echo training")
os.system("ssh -l root 192.168.2.1")
os.system("echo yes")
os.system("echo My_ROUTER_PASSWORD")
os.system("shutdown -r")
def main():
InterfaceControl()
if __name__=="__main__":
main()
提前谢谢你
请您参考如下方法:
你可以使用 paramiko 这是一个 python library它通过 ssh 抽象远程 shell 连接,有几个选项允许用户使用 rsa key 等进行身份验证。这是一个示例代码,您可以重复使用它来解决您的问题:
import paramiko
ssh = paramiko.SSHClient()
ssh.connect( 'hostname', username = 'username', password = 'password' )
ssh.exec_command( 'ls -al' )
顺便说一句,如果您从虚拟环境 (virtualenv) 运行脚本,则可以轻松地将 paramiko 添加到您的 python 环境中。
