返回

揭秘 Paramiko:Python自动化运维的秘密武器

后端

Paramiko 的适用场景

  • 自动化运维: Paramiko 可实现远程服务器的自动控制,如批量执行命令、管理服务、部署代码等。
  • 系统管理: Paramiko 能够轻松地远程访问系统资源,方便管理服务器、交换机、路由器等设备。
  • 安全审计: Paramiko 可以帮助渗透测试人员和安全审计员执行远程安全评估任务,如漏洞扫描、远程访问测试等。

Paramiko 的核心功能

  • 远程连接: Paramiko 提供了安全可靠的远程连接方式,支持 SSH2 协议。
  • 文件传输: Paramiko 能够进行安全的文件传输,支持 SFTP 协议。
  • 执行命令: Paramiko 可以远程执行系统命令,并获取命令执行结果。
  • 管理服务: Paramiko 可以管理远程服务,如启动、停止、重启等。

远程连接方式

Paramiko 支持两种远程连接方式:

  1. 基于用户名密码连接:
import paramiko

# 创建 SSHClient 实例
ssh = paramiko.SSHClient()

# 连接到远程服务器
ssh.connect(hostname='example.com', username='username', password='password')

# 执行命令
ssh.exec_command('ls -l')

# 关闭连接
ssh.close()
  1. 基于公钥密钥连接:
import paramiko

# 创建 SSHClient 实例
ssh = paramiko.SSHClient()

# 加载私钥文件
pkey = paramiko.RSAKey.from_private_key_file('private_key.pem')

# 连接到远程服务器
ssh.connect(hostname='example.com', username='username', pkey=pkey)

# 执行命令
ssh.exec_command('ls -l')

# 关闭连接
ssh.close()

SSHClient 使用示例

基于用户名和密码:

import paramiko

# 创建 SSHClient 实例
ssh = paramiko.SSHClient()

# 连接到远程服务器
ssh.connect(hostname='example.com', username='username', password='password')

# 执行命令
stdin, stdout, stderr = ssh.exec_command('ls -l')

# 获取命令执行结果
result = stdout.read().decode('utf-8')

# 打印命令执行结果
print(result)

# 关闭连接
ssh.close()

公钥密钥:

import paramiko

# 创建 SSHClient 实例
ssh = paramiko.SSHClient()

# 加载私钥文件
pkey = paramiko.RSAKey.from_private_key_file('private_key.pem')

# 连接到远程服务器
ssh.connect(hostname='example.com', username='username', pkey=pkey)

# 执行命令
stdin, stdout, stderr = ssh.exec_command('ls -l')

# 获取命令执行结果
result = stdout.read().decode('utf-8')

# 打印命令执行结果
print(result)

# 关闭连接
ssh.close()

SFTPClient 使用示例:

import paramiko

# 创建 SSHClient 实例
ssh = paramiko.SSHClient()

# 连接到远程服务器
ssh.connect(hostname='example.com', username='username', password='password')

# 创建 SFTPClient 实例
sftp = ssh.open_sftp()

# 上传文件
sftp.put('local_file.txt', 'remote_file.txt')

# 下载文件
sftp.get('remote_file.txt', 'local_file2.txt')

# 关闭连接
sftp.close()
ssh.close()

结语

Paramiko 是 Python 中一款非常强大的自动化运维工具,它可以帮助我们轻松地实现远程连接、文件传输和命令执行等操作。掌握了 Paramiko 的使用方法,可以大大提高我们的运维效率。