Python实现登录到远程主机,然后在远程主机上继续连接远程主机

实现功能

登录到远程主机,然后在远程主机上继续连接远程主机,执行命令。

python 复制代码
import paramiko  
import time

  
# 第二个远程主机的连接信息(在第一个远程主机上执行SSH连接时使用)  
second_remote_host = '192.168.xx.xxx'  


  
# 创建SSH客户端并连接到第一个远程主机  
ssh = paramiko.SSHClient()  
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 自动添加主机名和主机密钥到本地HostKeys对象,并保存  
ssh.connect('xx.xx.xx.xx', username='root', password='xxx')  
  
# 在第一个远程主机上执行SSH命令以连接到第二个远程主机  
# 注意:这里我们假设你已经在第一个远程主机上设置了SSH密钥认证到第二个远程主机  
# 或者你可以在命令中指定密码(但这通常不是安全的做法)  
command = f"/opt/sshpass/bin/sshpass -p 密码 ssh 用户名@{second_remote_host} 'ls '"  
stdin, stdout, stderr = ssh.exec_command(command)  

time.sleep(1)
  
# 读取命令输出  
output = stdout.read().decode()  
error = stderr.read().decode()  
  
if error:  
    print(f"Error connecting to {second_remote_host}: {error}")  
else:  
    print(f"Output from {second_remote_host}:\n{output}")  
  
# 关闭连接  
ssh.close()
相关推荐
ba_pi几秒前
每天写点什么2026-01-10-深度学习和网络原理
网络·人工智能·深度学习
这里是彪彪4 分钟前
Java中的volatile关键字的作用
java·开发语言
王夏奇4 分钟前
python在汽车电子行业中应用2—具体包的介绍和使用
网络·python·汽车
Dxy12393102168 分钟前
Python的zip用法详解
开发语言·python
逑之9 分钟前
C语言笔记3:分支与循环
c语言·开发语言·笔记
不知疲倦的仄仄16 分钟前
第四天:Netty 核心原理深度解析&EventLoop、Future/Promise 与 Pipeline
linux·服务器·网络
黎雁·泠崖16 分钟前
Java入门从零起步:CMD操作+JDK环境搭建+第一个Java程序
java·开发语言
f***241117 分钟前
MATLAB高效算法优化实战指南
开发语言·算法·matlab
橘颂TA17 分钟前
【Linux 网络编程】网络是怎么 “跑” 起来的?从协议入门到 TCP/ IP 模型的底层逻辑
linux·运维·服务器·网络
我的golang之路果然有问题17 分钟前
python中 unicorn 热重启问题和 debug 的 json
java·服务器·前端·python·json