""" paramiko模块的使用 周万春 """ """ paramiko模块,基于SSH用于连接远程服务器并执行相关操作。 """ """ 模块介绍 SSHClient:包装了Channel、Transport、SFTPClient。 Channel:是一种类Socket,一种安全的SSH传输通道。 Transport:是一种加密的会话(但是这样一个对象的Session并未建立),并且创建了一个加密的tunnels,这个tunnels叫做Channel。 Session:是client与Server保持连接的对象,用connect()/start_client()/start_server()开始会话。 """ """ 安装paramiko [root@db01 ~]# yum -y install python3-pip [root@db01 ~]# pip3 install paramiko """ """ 模块基础使用 基于用户名和密码验证的连接,Python的Paramiko支持最直接的使用用户名和密码进行连接,然后执行命令。 """ #!/usr/bin/env python3 #-*- coding: utf-8 -*- #导入模块 import paramiko # 创建Paramiko的SSH对象 ssh = paramiko.SSHClient() # 访问未知主机时的策略,自动添加策略,保存服务器的主机名和密钥信息。 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.connect(hostname='10.0.0.11', port=22, username='root', password='mysql', timeout=4, allow_agent=False) # 执行命令 stdin, stdout, stderr = ssh.exec_command('uptime') # 获取命令结果 res_out = stdout.read().decode().rstrip(' ') # 输出命令结果 print(res_out) # 关闭连接 ssh.close() """ 基于密钥验证的连接 Paramiko模块同时还支持使用私钥认证的方式,需要用户提前配置好密钥认证。 """ """ #!/usr/bin/env python3 #-*- coding: utf-8 -*- # 导入模块 import paramiko # 设置私钥文件 private_key = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa') # 创建Paramiko的SSH对象 ssh = paramiko.SSHClient() # 访问未知主机时的策略,自动添加策略,保存服务器的主机名和密钥信息。 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.connect(hostname='10.0.0.11', port=22, username='root', pkey=private_key, timeout=4, allow_agent=False) # 执行命令 stdin, stdout, stderr = ssh.exec_command('uptime') # 获取命令结果 res_out = stdout.read().decode().rstrip(' ') # 输出命令结果 print(res_out) # 关闭连接 ssh.close() """