使用Python脚本连接路由器的SSH

2 投票
2 回答
15213 浏览
提问于 2025-04-17 20:02

我想知道是否可以用一个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()

非常感谢你的帮助!

2 个回答

0

plumbum 是你需要的东西。 (远程命令)

6

你可以使用 paramiko,这是一个 Python 的 ,它可以帮助你通过 SSH 进行远程连接。这个库提供了很多选项,让用户可以使用 RSA 密钥等方式进行身份验证。下面是一个你可以重复使用的示例代码,来解决你的问题:

import paramiko

ssh = paramiko.SSHClient()
ssh.connect( 'hostname', username = 'username', password = 'password' )
ssh.exec_command( 'ls -al' )


顺便提一下,如果你是在虚拟环境中运行你的脚本的话,virtualenv 可以很方便地将 paramiko 添加到你的 Python 环境中。

撰写回答