paramiko简介:

模拟ssh客户端,使用ssh协议,基于sftp协议等做批量管理。例如处理用ssh登陆一千台机器执行
同一个命令,或下载上传文件等需求

基于用户名密码登录执行命令:

import paramiko

#创建SSH对象
ssh = paramiko.SSHClient()
#允许连接不在know_hosts文件中的主机,自动添加konw_host里面没有的主机
ssh.set_missing_hsot_key_policy(paramiko.AutoAddPolicy())
#连接服务器
ssh.connect(hostname='c1.salt.com',port=22,username='root',password='centos')
#执行命令,标准输入,输出,错误,其中输出和错误只有一个有结果
stdin,stdout,stderr = ssh.exec_command('df')
#获取标准输出的结果
result = stdout.read()
print(result.decode())
#关闭连接
ssh.close()

基于用户名密码登录上传下载文件:

import paramiko
'''
模拟SCP命令传文件
''' transport = paramiko.Transport(("hostname",22))
transport.connect(username='root', password='')
#把transport连接做为参数给SFTPClient
sftp = paramiko.SFTPClient.from_transport(transport)
#将location.py上传至服务器 /tmp/test.py
sftp.put('/tmp/location.py', '/tmp/test.py')
#将remove_path 下载到本地 local_path
sftp.get('remove_path', 'local_path') transport.close()

上面的方式,用户名,密码写在列表里,循环连接这样是明文不安全 还有一种方式是用秘钥连接更安全

基于RSA公钥私钥连接执行命令:

import paramiko

private_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa')
#创建SSH对象
ssh = paramiko.SSHClient()
#允许连接不在know_host文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接服务器
ssh.connect(hostname='c1.salt.com',port=22,username='root',pkey=private_key)
#执行命令
stdin, stdout, stderr = ssh.exec_command('df')
result = stdout.read()
print(result.decode())

基于RSA公钥私钥连接上传下载文件:

import paramiko

private_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa')

transport = paramiko.Transport(('hostname',22))
transport.connect(username='root',pkey=private_key) sftp = paramiko.SFTPClient.from_transport(transport)
#将location.py上传至服务器 /tmp/test.py
sftp.put('/tmp/location.py', '/tmp/test.py')
#将remove_path 下载到本地 local_path
sftp.get('remove_path', 'local_path') transport.close()

注意事项:

错误说明:
not found konw_host文件
如果没有写这句话会报上面的错:ssh.set_missing_hsot_key_policy(paramiko.AutoAddPolicy())
在Linux里,用户家目录里有ls .ssh/know_host 10.0.0.31-->10.0.0.41
私钥 公钥
想连别的机器不用密码,就把公钥给别人放别人的家目录,私钥自己拿着
私钥和公钥成对出现,类似于对暗号的形式
												

堡垒机paramiko模块的更多相关文章

  1. 堡垒机--paramiko模块

    做堡垒机之前,来了解一下paramiko模块. 实际上底层封装的SSH. SSHclient(1) import paramiko #实例化一个ssh ssh = paramiko.SSHClient ...

  2. python之路 堡垒机paramiko

    paramiko 1.安装 pip3 install paramiko 二.使用 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: import paramiko # 创建S ...

  3. 堡垒机 paramiko 自动登陆代码

    #!/usr/bin/env python # Copyright (C) - Robey Pointer <robeypointer@gmail.com> # # This file i ...

  4. 堡垒机 paramiko代码

    #!/usr/bin/env python # Copyright (C) - Robey Pointer <robeypointer@gmail.com> # # This file i ...

  5. paramiko 堡垒机

    用paramiko写堡垒机 paramiko paramiko模块,基于SSH用于连接远程服务器并执行相关操作. 基本用法 SSHClient 基于用户名密码连接: 基础用法: import para ...

  6. python远程连接paramiko 模块和堡垒机实现

    paramiko使用 paramiko模块是基于python实现了SSH2远程安全连接,支持认证和密钥方式,可以实现远程连接.命令执行.文件传输.中间SSH代理功能 安装 pip install pa ...

  7. 利用paramiko模块实现堡垒机+审计功能

    paramiko模块是一个远程连接服务器,全真模拟ssh2协议的python模块,借助paramiko源码包中的demos目录下:demo.py和interactive.py两个模块实现简单的堡垒机+ ...

  8. Pyhton开发堡垒机之paramiko模块

    堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: + ...

  9. paramiko模块实现堡垒机

    通过SSHClient 执行命令 """通过用户名密码验证""" import paramiko # 创建 SSH 对象 ssh = par ...

随机推荐

  1. 从零开始学习PYTHON3讲义(四)让程序更友好

    <从零开始PYTHON3>第四讲 先看看上一讲的练习答案. 程序完成的是功能,功能来自于"程序需求"("需求"这个词忘记了什么意思的去复习一下第二讲 ...

  2. 带着萌新看springboot源码8(spring ioc源码下)

    继续接着上一节,到了第六步(温馨提醒,内容有点小多,不过看完ioc原理就差不多了) 6.注册Bean后置处理器(registerBeanPostProcessors(beanFactory)) 最后一 ...

  3. 【算法与数据结构专场】BitMap算法基本操作代码实现

    上篇我们讲了BitMap是如何对数据进行存储的,没看过的可以看一下[算法与数据结构专场]BitMap算法介绍 这篇我们来讲一下BitMap这个数据结构的代码实现. 回顾下数据的存储原理 一个二进制位对 ...

  4. 使用mpvue开发小程序教程(一)

    前段时间,美团开源了mpvue这个项目,使得我们又多了一种用来开发小程序的框架选项.由于mpvue框架是完全基于Vue框架的(重写了其runtime和compiler),因此在用法上面是高度和Vue一 ...

  5. Python:正则表达式 re 模块

    正则是处理字符串最常用的方法,我们编码中到处可见正则的身影. 正则大同小异,python 中的正则跟其他语言相比略有差异: 1.替换字符串时,替换的字符串可以是一个函数 2.split 函数可以指定分 ...

  6. SpringCloud Config手动刷新及自动刷新

    1.Config手动刷新a.使用@RefreshScope注解 import org.springframework.beans.factory.annotation.Value; import or ...

  7. 【Java基础】【26网络编程】

    26.01_网络编程(网络编程概述)(了解) A:计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下, ...

  8. python常用脚本以及问题跟踪

    1.时间操作//获取当前时间 格式是%Y-%m-%d %H:%M:%ScurrTime = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time. ...

  9. Magicodes.NET框架之路——产品之路(谈谈产品管理)

    虽然Magicodes.NET现在还不属于产品,但是却不妨碍她想成为产品的心. 为什么突然有了此篇,这篇不是空穴来风,而是我思考良久的结果: 为了让大家知道我在干什么,我想干什么,我将要干什么还有我干 ...

  10. SpringBoot系列——Spring-Data-JPA

    前言 jpa是ORM映射框架,更多详情,请戳:apring-data-jpa官网:http://spring.io/projects/spring-data-jpa,以及一篇优秀的博客:https:/ ...