我想知道是否有可能使用python脚本连接到路由器并使用ssh连接控制接口(关闭,重启无线网络等)。
到目前为止,我写了这些行,但它仍然无效。当我查看终端时,我看到当我的脚本应该回显路由器的密码以完成连接时,所有内容都被阻止。我怎么能纠正这个?
以下是行:
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()
非常感谢你提前
答案 0 :(得分:4)
您可以使用paramiko
这是一个python library,它通过ssh抽象远程shell连接,允许用户使用rsa密钥等进行身份验证。这是一个可以重用的示例代码解决你的问题:
import paramiko
ssh = paramiko.SSHClient()
ssh.connect( 'hostname', username = 'username', password = 'password' )
ssh.exec_command( 'ls -al' )
顺便说一句,如果您从虚拟环境(virtualenv)运行脚本,paramiko可以轻松添加到您的python环境中。
答案 1 :(得分:0)
plumbum正是您要找的。 (remote commands)