day9--paramiko 模块
一、堡垒机前戏
开发堡垒机之前,先来学习Python的paramiko模块,该模块居于SSH用于连接远程服务器并执行相关操作。
paramiko模块 存在的作用:作批量管理用的。
友情提示:下文中提到的通过密钥登录,如果不懂的话,请查看这篇博客:猛击这里(来自师兄的博客)
二、SSHClient
SSHClient 作用:用于连接远程服务器并执行基本命令
2.1 、基于用户名,密码连接
1 import paramiko 2 3 #创建ssh对象,实例化 4 5 ssh = paramiko.SSHClient() 6 7 # 允许连接不在KNOW_HOSTS文件,连接后自动添加到文件中. 8 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 9 10 #连接服务器 11 ssh.connect(hostname="192.168.90.203",port=22,username="keven",password="cdw123") 12 13 #执行命令, 14 stdin,stdout,stderr = ssh.exec_command("top -bn 1") 15 #读取结果 16 result = stdout.read() 17 #执行正确打印结果 18 print(result.decode()) 19 #执行错误,打印错误结果 20 print(stderr.read().decode()) 21 #关闭连接 22 ssh.close()
注:
- stdin => 标准输入,就是你输入的那个命令
- stdout => 标准输出,你输入命令后执行的结果
- stderr => 标准错误,名利执行的过程中,如果出错了,就把这个错误打到这里
2.1.2、SSHClient 封装 Transport
1 transport =paramiko.Transport(("192.168.90.203",22)) 2 transport.connect(username="keven",password="cdw123") 3 4 ssh=paramiko.SSHClient() 5 ssh._transport = transport 6 7 stdin,stdout,stderr = ssh.exec_command("df") 8 9 print(stdout.read().decode()) 10 11 transport.close()
基于秘钥,因没有linux 环境,。。。。

浙公网安备 33010602011771号