一、paramiko模块

  Python的paramiko模块基于SSH用于连接远程服务器并执行相关的操作。

  1.1 在windows上安装paramiko模块

  测试环境: win10 , python3.5 并且已安装 pip

  在命令窗口,切换到 python 安装目录中的 Scripts

  执行: pip install paramiko

  检测: import paramiko

二、SSHClient

  2.1 基于用户名密码连接  

import paramiko

'''
用于连接远程服务器,并执行命令
''' # 创建SSH对象
ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器
ssh.connect(hostname='172.16.200.30', port=22, username='root', password='111111') # 执行命令
stdin, stdout, stderr = ssh.exec_command('ls&&df') # 获取命令结果
# 三元运算
res, err = stdout.read(), stderr.read()
result = res if res else err
print(result.decode()) # 关闭连接
ssh.close()

  输出

   

  1. stdin =>  标准输入,就是你输入的那个命令
  2. stdout => 标准输出,你输入命令后执行的结果
  3. stderr => 标准错误,名利执行的过程中,如果出错了,就把这个错误打到这里

  2.2 基于公钥秘钥连接

其实很上面用密码登入没什么区别,只是不用写明文密码了

import paramiko

private_key = paramiko.RSAKey.from_private_key_file(r'G:\python\untitled\study9\ceshi')

# 创建SSH对象
ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器
ssh.connect(hostname='172.16.200.30', port=22, username='root', pkey=private_key) # 执行命令
stdin, stdout, stderr = ssh.exec_command('ls') # 获取命令结果
# 三元运算
res, err = stdout.read(), stderr.read()
result = res if res else err
print(result.decode()) # 关闭连接
ssh.close()

  输出

004776
1
_1748
anaconda-ks.cfg
monitor
npm-debug.log

  2.3 SSHClietn封装了transport

# -*- coding: UTF-8 -*-

# SSHClient 封装了Transport

import paramiko

transport = paramiko.Transport(('172.16.200.30', 22))
transport.connect(username='root', password='111111') ssh = paramiko.SSHClient()
ssh._transport = transport # 执行命令
stdin, stdout, stderr = ssh.exec_command('df') res, err = stdout.read(), stderr.read()
result = res if res else err
print(result.decode()) transport.close()

  基于秘钥

# SSHClient 封装了Transport

import paramiko

private_key = paramiko.RSAKey.from_private_key_file(r'G:\python\untitled\study9\ceshi')

transport = paramiko.Transport(('172.16.200.30', 22))
transport.connect(username='root', pkey=private_key) ssh = paramiko.SSHClient()
ssh._transport = transport # 执行命令
stdin, stdout, stderr = ssh.exec_command('ds') res, err = stdout.read(), stderr.read()
result = res if res else err
print(result.decode()) transport.close()

  

三、SFTPClient

  用于连接远程服务器并执行上传和下载

  3.1 基于用户名和密码

import paramiko

transport = paramiko.Transport(('172.16.200.30', 22))
transport.connect(username='root', password='111111') sftp = paramiko.SFTPClient.from_transport(transport) # 将本地文件上传至服务器
sftp.put(r'G:\python\untitled\study9\ceshi', '/tmp/ceshi') # 将远程服务器的文件下载至本地
sftp.get('/tmp/test.txt', r'G:\python\untitled\study9\test_linux.txt') transport.close() #注:
上传和下载的路径必须是全路径,即必须把文件名也加上,不能只写目录名

  3.2 基于公钥和私钥上传和下载

  同样改变不多

import paramiko

# 秘钥
private_key = paramiko.RSAKey.from_private_key_file(r'G:\python\untitled\study9\ceshi') transport = paramiko.Transport(('172.16.200.30', 22))
transport.connect(username='root', pkey=private_key) sftp = paramiko.SFTPClient.from_transport(transport) # 将本地文件上传至服务器
sftp.put(r'G:\python\untitled\study9\ceshi', '/tmp/ceshi') # 将远程服务器的文件下载至本地
sftp.get('/tmp/test.txt', r'G:\python\untitled\study9\test_linux.txt') transport.close()

  

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

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

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

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

    堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 paramiko模块是做主机管理的,他模拟了一个ssh. 有两种形式连接形式, ...

  3. 堡垒机之paramiko模块

    一.paramiko简单介绍 场景预设: 很多运维人员平时进行维护linux/unix主机时候,无非通过ssh到相应主机操作,那么一旦主机有成千上百台,那该如何应对,这时候我们需要批处理工具,基于py ...

  4. 堡垒机前戏——paramiko

    提要:在写堡垒机之前,我们必须要了解paramiko这个第三方库.有关于python的第三方库的安装很简单,可以自行百度. 该模块基于SSH用于连接远程服务器并执行相关操作. SSHClient 用于 ...

  5. python-----堡垒机前戏paramiko模块及进阶

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

  6. 堡垒机(paramiko)

    实现思路 堡垒机执行流程: 管理员为用户在服务器上创建账号(将公钥放置服务器,或者使用用户名密码) 用户登陆堡垒机,输入堡垒机用户名密码,现实当前用户管理的服务器列表 用户选择服务器,并自动登陆 执行 ...

  7. python之路 堡垒机paramiko

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

  8. 基于python的堡垒机

    一 堡垒机的架构 堡垒机的核心架构通常如下图所示: 二.堡垒机的一般执行流程 管理员为用户在服务器上创建账号(将公钥放置服务器,或者使用用户名密码) 用户登陆堡垒机,输入堡垒机用户名密码,显示当前用户 ...

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

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

随机推荐

  1. 第五次ScrumMeeting博客

    第五次ScrumMeeting博客 本次会议于10月29日(日)22时整在3公寓725房间召开,持续15分钟. 与会人员:刘畅.辛德泰.窦鑫泽.张安澜.赵奕. 1. 每个人的工作(有Issue的内容和 ...

  2. Python爬虫入门(7):正则表达式

    下面就开始介绍一个十分强大的工具,正则表达式! 1.了解正则表达式 正则表达式是对字符串操作的一种公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串” ...

  3. 大数据-spark-hbase-hive等学习视频资料

    不错的大数据spark学习资料,连接过期在评论区评论,再给你分享 https://pan.baidu.com/s/1ts6RNuFpsnc39tL3jetTkg

  4. PHP中的闭包详解

    PHP闭包(Closure)使用详解 作者: 字体:[增加 减小] 类型:转载 时间:2013-05-02我要评论 本篇文章介绍了,PHP闭包(Closure)的使用介绍,需要的朋友参考下   不知不 ...

  5. socket编程 123

    1. 预备知识 一直以来很少看到有多少人使用php的socket模块来做一些事情,大概大家都把它定位在脚本语言的范畴内吧,但是其实php的socket模块可以做很多事情,包括做ftplist,http ...

  6. JS数据结构学习之排序

    在看<>这本书中关于排序这一章的时候,我试着用javascript语言来重写里面几个经典的排序方法,包括冒泡排序.快速排序.选择排序.插入排序还有希尔排序. 一.冒泡排序 冒泡排序算是排序 ...

  7. 王者荣耀交流协会 - 第6次Scrum会议(第二周)

    Scrum master :刘耀泽 工作照片: 照片由刘耀泽(本人)拍摄,组内成员刘耀泽,高远博,王磊,王玉玲,王超,任思佳,袁玥全部到齐. 时间跨度: 2017年10月25日 17:00 — 17: ...

  8. Android 7.1.1 又出幺蛾子了 —— 再谈 Android 上的 Wifi 连接

    在之前的博客文章中,我写了点在 Android 6 系统中连接到指定名称的 Wifi 的体验.然而,在 Android 7 中,有一些东西又变化了.另外就是在那篇文章中我说要提供代码,结果拖到这篇文章 ...

  9. python apply()函数

    python apply函数的具体的含义: apply(func [, args [, kwargs ]]) 函数用于当函数参数已经存在于一个元组或字典中时,间接地调用函数.args是一个包含将要提供 ...

  10. DB2 9.5 数据库分区管理及应用实践

    DB2 数据库分区是 DB2 企业版 DPF(Data Partitioning Feature)选件提供的,它主要用来为大规模数据处理.高并发数据访问提供支持.DB2 数据库分区采用 Share-n ...