使用Paramiko进行SSH连接与操作可以分为以下几个步骤:
-
安装Paramiko :
首先需要安装Paramiko库,可以使用pip进行安装:
bashpip install paramiko
-
建立SSH连接 :
使用Paramiko连接远程服务器,需要提供服务器的地址、用户名、密码(或密钥)等信息。
-
执行命令 :
连接成功后,可以在远程服务器上执行命令,并获取执行结果。
-
文件传输 :
Paramiko还支持SFTP,可以用于文件上传和下载。
下面是一个基本的示例代码,演示如何使用Paramiko进行SSH连接和操作:
python
import paramiko
# 创建SSH客户端对象
ssh = paramiko.SSHClient()
# 自动添加主机密钥
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接到远程服务器
ssh.connect(hostname='example.com', port=22, username='your_username', password='your_password')
# 执行命令
stdin, stdout, stderr = ssh.exec_command('ls -l')
print(stdout.read().decode())
print(stderr.read().decode())
# 关闭连接
ssh.close()
使用密钥文件进行连接
如果使用密钥文件进行连接,可以按如下方式进行:
python
import paramiko
# 创建SSH客户端对象
ssh = paramiko.SSHClient()
# 自动添加主机密钥
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 加载私钥文件
private_key = paramiko.RSAKey.from_private_key_file('/path/to/private_key.pem')
# 连接到远程服务器
ssh.connect(hostname='example.com', port=22, username='your_username', pkey=private_key)
# 执行命令
stdin, stdout, stderr = ssh.exec_command('ls -l')
print(stdout.read().decode())
print(stderr.read().decode())
# 关闭连接
ssh.close()
使用SFTP进行文件传输
使用Paramiko的SFTP功能进行文件上传和下载:
python
import paramiko
# 创建SSH客户端对象
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='example.com', port=22, username='your_username', password='your_password')
# 创建SFTP会话
sftp = ssh.open_sftp()
# 上传文件
sftp.put('/local/path/to/file.txt', '/remote/path/to/file.txt')
# 下载文件
sftp.get('/remote/path/to/file.txt', '/local/path/to/file.txt')
# 关闭SFTP会话和SSH连接
sftp.close()
ssh.close()
通过以上步骤,你可以使用Paramiko库进行基本的SSH连接、命令执行和文件传输操作。如果需要更高级的功能,比如处理复杂的命令输出、设置超时等,可以参考Paramiko的官方文档进行进一步的学习和配置。