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()

 

注:

  1. stdin =>  标准输入,就是你输入的那个命令
  2. stdout => 标准输出,你输入命令后执行的结果
  3. 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 环境,。。。。

 

posted @ 2018-03-16 15:37  东郭仔  阅读(119)  评论(0)    收藏  举报