堡垒机之paramiko模块

一、paramiko简单介绍

场景预设:

很多运维人员平时进行维护linux/unix主机时候,无非通过ssh到相应主机操作,那么一旦主机有成千上百台,那该如何应对,这时候我们需要批处理工具,基于python的工具有ansible、salt,而ansible的核心则是介于paramiko。

安装:

pip install paramiko或 easy_install paramiko

paramiko依赖第三方的Crypto,Ecdsa和pyhton-devel

核心组件:

SSHclient类
方法:

connect():远程ssh连接并作校验

参数:

  • hostname 连接的目标主机
  • port=SSH_PORT 指定端口
  • username=None 验证的用户名
  • password=None 验证的用户密码
  • pkey=None 私钥方式用于身份验证
  • key_filename=None 一个文件名或文件名列表,指定私钥文件
  • timeout=None 可选的tcp连接超时时间
  • allow_agent=True 是否允许连接到ssh代理,默认为True 允许
  • look_for_keys=True 是否在~/.ssh中搜索私钥文件,默认为True 允许
  • compress=False 是否打开压缩
  • sock=None
  • gss_auth=False
  • gss_kex=False
  • gss_deleg_creds=True
  • gss_host=None
  • banner_timeout=None

exec_command():用于远程执行命令,该命令的输入与输出流为标准输入、标出输出、标准错误输出

参数:

  • command 执行的命令
  • bufsize=-1 文件缓冲区大小
  • timeout=None 设置超时时间
  • get_pty=False

load_system_host_key():装载系统公钥,默认为~/.ssh/known_hosts

参数:

  • filename=None 指定本地公钥文件

set_missing_host_key_policy():设置连接的远程主机没有本地主机密钥或HostKeys对象时的策略,目前支持三种,也就是参数只有三个。

参数:

  • AutoAddPolicy 自动添加主机名及主机密钥到本地的known_hosts,不依赖load_system_host_key的配置。即新建立ssh连接时不需要再输入yes或no进行确认
  • WarningPolicy 用于记录一个未知的主机密钥的python警告。并接受,功能上和AutoAddPolicy类似,但是会提示是新连接
  • RejectPolicy 自动拒绝未知的主机名和密钥,依赖load_system_host_key的配置。此为默认选项

  用法:
  set_missing_host_key_policy(paramiko.AutoAddPolicy())

SFTPClient类

SFTPCLient作为一个sftp的客户端对象,根据ssh传输协议的sftp会话,实现远程文件操作,如上传、下载。

方法:

  • from_transport(cls,t) 创建一个已连通的SFTP客户端通道
  • put(localpath, remotepath, callback=None, confirm=True) 将本地文件上传到服务器 参数confirm:是否调用stat()方法检查文件状态,返回ls -l的结果
  • get(remotepath, localpath, callback=None) 从服务器下载文件到本地
  • mkdir() 在服务器上创建目录
  • remove() 在服务器上删除目录
  • rename() 在服务器上重命名目录
  • stat() 查看服务器文件状态
  • listdir() 列出服务器目录下的文件
时间: 2024-08-06 11:56:56

堡垒机之paramiko模块的相关文章

运维堡垒机---基于paramiko模块

话不多说,有图为证,主要是表达能力问题,呵呵.... 简单描述: 堡垒机一般都独立出来,单独部署,通俗点说就是跳板机,中控机. 须通过堡垒机才能连接到远程目的ip. 堡垒机将某用户的所有操作都记录在案----堡垒机的意义 一,流程图描述的功能已经非常清楚了 用户须先登陆堡垒机,然后能完成下面3个功能 1,单台机器登陆--->所有操作入库 2,批量机器执行命令--->所有操作入库 3,查看操作记录 二,堡垒机的意义(自己理解): 1,操作简单化,运维人员再也不用记服务器的username/pas

python2.0 s12 day8 _ 堡垒机前戏paramiko模块

堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 paramiko模块是做主机管理的,他模拟了一个ssh. 有两种形式连接形式, 一种通过用户名密码: ssh -p 22 [email protected] 一种是通过密钥的方式: ssh -p 22 -i ~/.ssh/dongjing-shanghai.pem [email protected]_pro01 再连接的的语法上,有两种: 一种是直接将连接的主机地址和端口直接

python-----堡垒机前戏paramiko模块

堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.con

python之路 堡垒机paramiko

paramiko 1.安装 pip3 install paramiko 二.使用 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.connect(hostname='c1.sa

python 堡垒机续-----终端方式

第一步:环境准备 堡垒机服务器:192.168.1.1 后端服务器1:192.168.1.2 后端服务器2:192.168.1.3 堡垒机安装paramiko 版本:paramiko-1.16.0 堡垒机python版本:Python 2.7.7   第二步:编写menu.py文件,实现类似菜单功能 #!/usr/bin/env python # encoding: utf-8 # @author: eddy # @contact: [email protected] # @site: http

基于python的堡垒机

一.堡垒机的概念 堡垒机,也称为跳板机,多用于系统运维环境中.指的是在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态.安全事件.网络活动,以便集中报警.及时处理及审计定责. 从功能上分析,它综合了核心系统运维和安全审计管控两大主要功能:从技术实现上分析,它通过切断终端计算机对网络和服务器资源的直接访问,而采用协议代理的方式,接管了终端计算机对网络和服务器的访问.形象地说,终端计算机对目标的访问,均需要

麒麟来源堡垒机设计原理

1序言 运维堡垒机,主要功能为认证.授权.审计,而各厂商又略有不同,麒麟开源堡垒机是一套完整的开源堡垒机系统,具有通用商业堡垒机一切功能模块,安装便利,运用简单,功能全面.易用性都与商业硬件堡垒机完全一样. 2堡垒机的概念和品种   堡垒机从运用拓朴上说,分为两种. 2.1网关型堡垒机 一般选用二层透明桥方法接入网络,一般拓朴方位在运维用户前方,运维用户做运维时,流量经过网关堡垒机,堡垒机对用户的操作进行审计.这种堡垒机曾经在2012年前在国外的一些厂商从么设计,国内厂商很少有这么设计.因为这种

堡垒机--paramiko模块

做堡垒机之前,来了解一下paramiko模块. 实际上底层封装的SSH. SSHclient(1) import paramiko #实例化一个ssh ssh = paramiko.SSHClient() #设置主机不在khost_key中也能连接 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #创建连接 ssh.connect(hostname='192.168.12.100',port=22,username='root'

堡垒机 Paramiko 模块

Paramiko 模块 引用源:http://www.cnblogs.com/wupeiqi/articles/5095821.html 前言:Paramiko模块封装了SSH协议,在连接服务器这方面广泛使用,是python连接Linux的重要模块.此模块封装了很多方法和类,可以根据需要合理使用. 一.连接服务器 1.用户名密码连接(不安全).这里介绍两种方法: 第一: 1 import paramiko 2 3 # 创建SSH对象 4 ssh = paramiko.SSHClient() 5