Python SSH 交互:使用 paramiko 库

作者:rousong2024.02.23 04:42浏览量:6

简介:使用 paramiko 库在 Python 中实现 SSH 交互,包括登录服务器、执行命令、上传和下载文件等功能。

千帆应用开发平台“智能体Pro”全新上线 限时免费体验

面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用

立即体验

在 Python 中,可以使用 paramiko 库实现 SSH 交互。Paramiko 是一个用于 SSHv2 协议的纯 Python 实现,可以用于连接远程服务器并执行命令、上传和下载文件等操作。

下面是一个简单的示例,演示如何使用 paramiko 库连接到远程服务器并执行命令:

  1. import paramiko
  2. # 创建 SSH 客户端对象
  3. ssh = paramiko.SSHClient()
  4. # 自动添加服务器的 SSH 密钥
  5. ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  6. # 连接远程服务器
  7. ssh.connect('remote_host', username='username', password='password')
  8. # 执行命令
  9. stdin, stdout, stderr = ssh.exec_command('ls')
  10. # 打印命令输出
  11. print(stdout.read().decode())
  12. # 关闭 SSH 连接
  13. ssh.close()

在这个示例中,首先创建了一个 SSH 客户端对象,并设置了一个策略,用于自动添加服务器的 SSH 密钥。然后使用 connect() 方法连接到远程服务器,并指定用户名和密码。接下来,使用 exec_command() 方法执行 ls 命令,并将标准输出和标准错误保存到 stdinstdoutstderr 变量中。最后,打印命令输出并关闭 SSH 连接。

除了执行命令之外,paramiko 还提供了其他功能,例如上传和下载文件。下面是一个示例,演示如何使用 paramiko 上传文件:

  1. import paramiko
  2. # 创建 SSH 客户端对象
  3. ssh = paramiko.SSHClient()
  4. # 自动添加服务器的 SSH 密钥
  5. ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  6. # 连接远程服务器
  7. ssh.connect('remote_host', username='username', password='password')
  8. # 上传文件
  9. sftp = ssh.open_sftp()
  10. sftp.put('local_file', 'remote_file')
  11. sftp.close()
  12. # 关闭 SSH 连接
  13. ssh.close()

在这个示例中,首先创建了一个 SSH 客户端对象,并设置了一个策略,用于自动添加服务器的 SSH 密钥。然后使用 connect() 方法连接到远程服务器。接下来,使用 open_sftp() 方法打开 SFTP(SSH 文件传输协议)连接,并使用 put() 方法将本地文件上传到远程服务器。最后,关闭 SFTP 连接和 SSH 连接。

需要注意的是,在使用 paramiko 进行 SSH 交互时,应该确保远程服务器的 SSH 服务已经正确配置,并且 Python 环境已经安装了 paramiko 库。另外,对于敏感信息(如密码),应该采取适当的加密和安全措施。

article bottom image

相关文章推荐

发表评论