📜  Python -SSH(1)

📅  最后修改于: 2023-12-03 15:33:57.600000             🧑  作者: Mango

Python-SSH

Python-SSH 是一个用于在 Python 中使用 SSH 协议的库,它提供了简单的方式来与远程服务器进行通信和交互,适用于自动化运维、批量操作和数据分析等场景。

安装

使用 pip 命令可以方便地安装 Python-SSH:

pip install paramiko
连接远程服务器

Python-SSH 使用 Paramiko 库来实现 SSH 协议,通过创建 SSHClient 对象来连接到远程服务器:

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='example.com', username='user', password='password')

这里需要提供远程服务器的主机名、用户名和密码。为了防止第一次连接时出现主机密钥不匹配的警告,我们设置了自动添加策略。

执行命令

与远程服务器连接后,就可以使用 SSHClient 对象的 exec_command 方法执行命令了:

stdin, stdout, stderr = ssh.exec_command('ls -l')
print(stdout.read().decode())

这里的 exec_command 方法返回一个三元组,包含了标准输入、标准输出和标准错误的文件对象。我们使用 read 方法读取标准输出,并使用 decode 方法将字节转换为字符串。

传输文件

Python-SSH 还提供了对 SCP 协议的支持,可以方便地在本地和远程服务器之间传输文件:

sftp = ssh.open_sftp()
sftp.put('local_file.txt', 'remote_file.txt')
sftp.get('remote_file.txt', 'local_file.txt')

这里的 open_sftp 方法返回一个 SFTPClient 对象,可以使用 put 方法将本地文件传输到远程服务器,使用 get 方法将远程文件下载到本地。

断开连接

最后,记得断开与远程服务器的连接:

ssh.close()

这样可以释放资源,并保证程序的正确性。Python-SSH 也支持使用 with 语句来自动管理连接的生命周期。

以上就是 Python-SSH 的基本用法,更多信息请参考官方文档。