Paramiko SSH与SFTP使用指南 | AI生成和翻译

Home 2025.09

安装

Paramiko 是一个用于 SSH 和 SFTP 的 Python 库。通过 pip 安装:

pip install paramiko

基础用法

Paramiko 允许您连接 SSH 服务器、执行命令和传输文件。请始终安全处理私钥并使用强密码——Paramiko 支持基于密钥和密码的身份验证。

核心概念:

示例:连接并执行命令

以下是通过 SSH 连接服务器、执行命令并输出结果的完整脚本。请将占位符替换为实际信息。

import paramiko

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

# 自动添加主机密钥(生产环境需谨慎;应加载已知主机密钥)
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

try:
    # 建立连接(使用密码或密钥文件)
    client.connect(
        hostname='your.server.com',
        port=22,  # 默认 SSH 端口
        username='your_username',
        password='your_password',  # 或使用 key_filename='path/to/private_key.pem'
    )

    # 执行命令
    stdin, stdout, stderr = client.exec_command('echo "Hello from SSH!"')

    # 读取输出
    output = stdout.read().decode('utf-8')
    error = stderr.read().decode('utf-8')

    print("输出:", output)
    print("错误:", error)

except paramiko.SSHException as e:
    print(f"SSH 错误: {e}")
finally:
    client.close()

进阶示例:使用密钥认证与文件传输

如需使用密钥认证,请先生成密钥对(例如使用 ssh-keygen),将公钥添加到服务器的 ~/.ssh/authorized_keys,然后使用:

import paramiko

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

try:
    # 基于密钥的连接
    client.connect(
        hostname='your.server.com',
        username='your_username',
        key_filename='~/.ssh/id_rsa',  # 私钥路径
    )

    # 执行命令
    stdin, stdout, stderr = client.exec_command('ls -la')
    print(stdout.read().decode('utf-8'))

    # SFTP 示例:传输文件
    sftp = client.open_sftp()
    sftp.put('local_file.txt', 'remote_file.txt')  # 上传
    sftp.get('remote_file.txt', 'local_copy.txt')  # 下载
    sftp.close()

except Exception as e:
    print(f"错误: {e}")
finally:
    client.close()

技巧与最佳实践

以上内容可帮助您快速入门,请根据实际需求进行调整!


Back

x-ai/grok-code-fast-1

Donate