paramiko模块
paramiko是一个用于连接和操作远程服务器的Python模块。它使用SSH协议来实现安全的远程连接,并提供了一些方便的API来执行命令、上传和下载文件等操作。
使用paramiko模块,你可以轻松地连接到远程服务器,执行命令并获取结果:
import paramiko
# 创建SSH客户端
client = paramiko.SSHClient()
# 自动添加远程服务器的主机密钥
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接到远程服务器
client.connect('hostname', username='username', password='password')
# 执行命令
stdin, stdout, stderr = client.exec_command('ls')
# 获取命令输出
output = stdout.read().decode('utf-8')
print(output)
# 关闭连接
client.close()
除了执行命令,paramiko还提供了一些其他的功能,如上传和下载文件:
import paramiko
# 创建SSH客户端
client = paramiko.SSHClient()
# 自动添加远程服务器的主机密钥
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接到远程服务器
client.connect('hostname', username='username', password='password')
# 上传文件
sftp = client.open_sftp()
sftp.put('local_file', 'remote_file')
# 下载文件
sftp.get('remote_file', 'local_file')
# 关闭连接
client.close()
paramiko模块提供了很多方便的功能来简化远程服务器的操作,如连接池、端口转发等。
paramiko模块基于公钥密钥transport登录
import paramiko # 导入 paramiko 模块
# 从私钥文件中加载 RSA 密钥
pkey1 = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa')
# 创建一个 Transport 对象,并指定主机和端口
transport = paramiko.Transport(('192.168.99.117', 22))
# 使用用户名和私钥连接到远程主机
transport.connect(username='root', pkey=pkey1)
# 创建一个 SSHClient 对象,并将 Transport 对象赋值给它
ssh = paramiko.SSHClient()
ssh._transport = transport
# 执行远程命令,并获取标准输入、输出和错误流
stdin, stdout, stderr = ssh.exec_command('echo `date`')
# 打印命令的输出
print(stdout.read().decode('utf-8'))
# 关闭 Transport 连接
transport.close()