Python自动连接SSH

Python自动连接SSH

在 Python 中,可以使用 paramiko 模块来编写脚本自动执行 SSH 命令。paramiko 是一个用于 SSHv2 的 Python 实现,可以帮助你在脚本中进行远程执行命令。

首先,确保安装了 paramiko:

sh 复制代码
pip install paramiko

然后,你可以使用以下 Python 脚本示例:

py 复制代码
import paramiko

# 远程主机的地址、用户名和私钥文件路径
remote_host = "example.com"
remote_user = "your_username"
port = 22
pwd = "password"
is_private_key = False
private_key_path = "/path/to/your/private/key"

# 创建 SSH 客户端
client = paramiko.SSHClient()

# 自动添加主机密钥 (此处可能会有潜在的安全风险,请谨慎使用)
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 连接到远程主机,2种方法,密钥法和密码法
if(is_private_key):
	private_key = paramiko.RSAKey(filename=private_key_path)
	client.connect(remote_host, port, username=remote_user, pkey=private_key)
else:
	ssh.connect(remote_host, port, remote_user, pwd)

# 执行远程命令
stdin, stdout, stderr = client.exec_command("ls")

# 打印命令输出
print(stdout.read().decode())

# 关闭 SSH 连接
client.close()

在这个脚本中:

  • paramiko.SSHClient() 创建了一个 SSH 客户端。
  • paramiko.AutoAddPolicy() 设置了一个策略,用于在第一次连接时自动添加主机密钥到本地 known_hosts 文件中。请注意这可能存在安全风险。
  • paramiko.RSAKey(filename=private_key_path) 使用指定路径的私钥文件进行认证。
  • client.connect() 连接到远程主机。
  • client.exec_command("ls") 执行了一个远程命令,这里是简单的列出目录。
  • stdout.read().decode() 读取命令的标准输出。

请替换示例中的远程主机地址、用户名和私钥文件路径为你的实际信息。并记住在生产环境中慎用自动添加主机密钥的方式,最好在安全环境中手动添加。

相关推荐
Java后端的Ai之路41 分钟前
Python 进阶探索30 - Python中的装饰器
开发语言·人工智能·python·文件处理·装饰器模式
言乐61 小时前
Python基于关键词分拣快递(适用于电商与货运代理等)
开发语言·python·django·virtualenv·pygame
代码方舟1 小时前
Python数据工程:利用天远名下车辆车牌查询A优化个人债务重组与清偿能力评估合规体验
人工智能·python
卷无止境1 小时前
当AI写代码遇见Rust为什么会卡壳
后端·python
栈溢出了1 小时前
LangGraph State、节点与动态路由学习笔记
python
用户019027581611 小时前
A 股代码后缀 .SH/.SZ/.BJ 怎么区分?Python 怎么统一处理沪深京港美股代码?
python
迅猛龙办公室1 小时前
python实现简单进度条
java·前端·python
郝学胜_神的一滴1 小时前
AI 编程智能体 06:用Anaconda搞定Python多环境,彻底告别版本兼容灾难
人工智能·python
清水白石0081 小时前
Python 对象模型深度解析:从“一切皆对象”到 id、type、isinstance 底层机制与小整数缓存原理
开发语言·python·缓存
for_ever_love__1 小时前
Python 进阶——迭代器、生成器、装饰器与 asyncio
python·装饰器·生成器·大模型开发