avatar

redh's blog

热爱可抵岁月方长

  • 首页
Home python的Paramiko库总结
文章

python的Paramiko库总结

Posted 2024-07-23 Updated 2024-07- 23
By redh
10~13 min read

Paramiko 库概述

Paramiko 是一个用于实现 SSH2 协议的 Python 库,支持安全连接、远程命令执行和文件传输。以下是对 Paramiko 库的详细总结,包括其功能、安装、主要模块、重要函数及其用法。

主要功能

  1. SSH 客户端:连接到远程服务器并执行命令。
  2. SFTP 客户端:通过 SFTP 协议进行文件传输。
  3. 密钥管理:支持公钥和私钥认证,生成和管理 SSH 密钥对。
  4. 通道管理:创建 SSH 通道,实现端口转发和隧道传输。

安装

使用 pip 安装 Paramiko:

pip install paramiko

主要模块

  1. SSHClient:管理 SSH 连接。
  2. SFTPClient:执行 SFTP 文件传输操作。
  3. RSAKey 和 DSSKey:管理 RSA 和 DSS 密钥。
  4. Transport:管理底层 SSH 传输协议和通信通道。

重要函数及其用法

SSHClient 类

  1. SSHClient():创建 SSH 客户端实例。

    ssh = paramiko.SSHClient()
    
  2. set_missing_host_key_policy(policy):设置处理未知主机密钥的策略。

    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    
  3. connect(hostname, port=22, username=None, password=None, pkey=None, key_filename=None, timeout=None):连接到远程服务器。

    ssh.connect('hostname', username='user', password='password')
    
  4. exec_command(command):在远程服务器上执行命令。

    stdin, stdout, stderr = ssh.exec_command('ls -l')
    print(stdout.read().decode())
    
  5. open_sftp():打开 SFTP 会话。

    sftp = ssh.open_sftp()
    
  6. close():关闭 SSH 连接。

    ssh.close()
    

SFTPClient 类

  1. put(localpath, remotepath):上传文件到远程服务器。

    sftp.put('local_file.txt', 'remote_file.txt')
    
  2. get(remotepath, localpath):从远程服务器下载文件。

    sftp.get('remote_file.txt', 'local_file.txt')
    
  3. close():关闭 SFTP 连接。

    sftp.close()
    

密钥管理

  1. RSAKey.generate(bits):生成新的 RSA 密钥。

    key = paramiko.RSAKey.generate(2048)
    key.write_private_key_file('private.key')
    
  2. from_private_key_file(filename, password=None):从文件加载私钥。

    key = paramiko.RSAKey.from_private_key_file('private.key')
    

Transport 类

  1. Transport((hostname, port)):创建 SSH 传输对象。

    transport = paramiko.Transport(('hostname', 22))
    transport.connect(username='user', password='password')
    
  2. open_channel(kind, dest_addr, src_addr):打开新的 SSH 通道。

    channel = transport.open_channel('direct-tcpip', ('remote_host', 22), ('localhost', 0))
    
  3. close():关闭传输对象。

    transport.close()
    

常见问题

  1. 权限错误:确保正确配置访问权限和密钥。
  2. 连接超时:检查网络连接和服务器地址。
  3. 密钥认证失败:确保使用正确的私钥和公钥。

优缺点

优点:

  • 提供全面的 SSH 协议支持。
  • 易于使用,适合自动化任务。
  • 支持多种认证方式。

缺点:

  • 性能可能不如特定于操作系统的工具。
  • 依赖 Python 环境,需要在目标系统上安装 Python 和相应库。
License:  CC BY 4.0
Share

Further Reading

OLDER

ssh入门

NEWER

linux查询历史命令

Recently Updated

  • 路由(flask)
  • json入门
  • ubuntu常用压缩和解压缩命令
  • VMware与主机之间实现文件传递
  • linux查询历史命令

Trending Tags

Halo

Contents

©2025 redh's blog. Some rights reserved.

Using the Halo theme Chirpy