paramiko模块的使用

"""
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('\n')

# 输出命令结果
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('\n')

# 输出命令结果
print(res_out)

# 关闭连接
ssh.close()
"""

猜你喜欢

转载自www.cnblogs.com/zhouwanchun/p/12968966.html