You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python从Linux跳板机SSH访问调制解调器设备

通过Paramiko连接跳板机访问调制解调器的实现方案

Hey,看你现在是想用Paramiko通过Linux跳板机去访问调制解调器,还要登录后获取设备详情对吧?我给你梳理下现有代码的优化点,还有后续访问调制解调器的完整流程:

先优化你的跳板机连接代码

你的基础连接代码已经有了,但可以调整得更稳妥些,比如处理路径转义、注意安全策略:

import paramiko
import time

# 初始化SSH客户端
ssh = paramiko.SSHClient()
# 自动添加未知主机密钥(生产环境建议提前把跳板机密钥加到known_hosts,换成RejectPolicy更安全)
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接跳板机,支持密码+密钥双重验证(如果跳板机允许的话)
ssh.connect(
    'jump server ip',
    username='user',
    password='pass',
    key_filename=r'D:\New folder\id_rsa'  # 用原始字符串避免转义问题
)

# 测试连接是否成功
stdin, stdout, stderr = ssh.exec_command('pwd')
print(stdout.read().decode().strip())  # 打印当前路径验证

从跳板机访问调制解调器的关键步骤

因为要登录调制解调器需要交互式操作,exec_command只能执行单次命令,所以得用交互式shell:

1. 建立交互式shell会话

# 获取跳板机的交互式shell
shell = ssh.invoke_shell()
shell.settimeout(10)  # 设置超时,避免无限等待

# 等待跳板机提示符出现(根据你的跳板机实际提示符调整,比如$、#)
while not shell.recv_ready():
    time.sleep(0.5)
print("跳板机连接成功:", shell.recv(4096).decode().strip())

2. 登录调制解调器并获取设备详情

假设你的调制解调器用telnet访问,流程如下(如果是SSH访问,把telnet换成ssh命令即可):

# 发送telnet命令连接调制解调器(替换成你的调制解调器IP)
shell.send('telnet 192.168.1.1\n')
time.sleep(2)

# 输入调制解调器用户名(根据设备登录提示调整)
shell.send('modem_username\n')
time.sleep(1)

# 输入调制解调器密码
shell.send('modem_password\n')
time.sleep(2)

# 发送获取设备详情的命令(替换成你的设备支持的命令,比如show system info)
shell.send('show device details\n')
time.sleep(3)

# 读取并打印设备详情
device_info = shell.recv(8192).decode()
print("\n调制解调器设备详情:")
print(device_info)

3. 清理连接资源

操作完成后记得关闭连接,避免资源占用:

# 退出调制解调器登录(根据设备命令调整,比如exit或quit)
shell.send('exit\n')
time.sleep(1)

# 关闭跳板机SSH连接
ssh.close()

一些实用提示

  • 不要依赖固定的time.sleep,可以通过匹配设备的提示符(比如"Login:"、"Password:")来判断下一步操作,这样更可靠
  • 生产环境中不要用AutoAddPolicy,提前将跳板机的SSH密钥添加到本地的known_hosts文件中,换成paramiko.RejectPolicy()更安全
  • 如果调制解调器支持SSH,可以直接在跳板机上执行ssh modem_user@modem_ip,流程和telnet类似,只是命令不同

内容的提问来源于stack exchange,提问作者emerb nura

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:57:24