一、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. loadrunner socket协议问题归纳(3)

    摘要:通过实例讲解loadrunner中的socket协议性能测试的一种测试方法,如何不依赖loadrunner既定规则,自行控制收发数据包 关键词:Loadrunner,socket,自行控制,收发 ...

  2. mysql 对表格加索引但原表格有重复数据

    1.把表中唯一数据搜索创建临时表,最后代替原先表. create table mmmmmm as SELECT * FROM meriadianannotation GROUP BY SeriesID ...

  3. Swing State: Consistent Updates for Stateful and Programmable Data Planes

    Swing State: Consistent Updates for Stateful and Programmable Data Planes 年份:2017 来源:ACM 本篇论文解决的问题 B ...

  4. UVALive - 6887 Book Club 有向环的路径覆盖

    题目链接: http://acm.hust.edu.cn/vjudge/problem/129727 D - Book Club Time Limit: 5000MS 题意 给你一个无自环的有向图,问 ...

  5. java程序连接MySQL数据库

    驱动程序:mysql-connector-java-5.1.7-bin.jar. 程序示例如下: package commonProject; import java.sql.Connection; ...

  6. 如何在一台 web 服务器上注册CA证书

    试验环境介绍(CA的主机为192.168.23.10.httpd的主机为:192.168.23.11) 1:新建一台web服务器,主机名为www yum install -y httpd   2:生成 ...

  7. (三)MySQL终极篇

    1.索引 详细介绍:http://www.cnblogs.com/57rongjielong/p/8039452.html 索引是对数据库表中一个或多个列的值进行排序的结构.索引是经过某种算法优化过的 ...

  8. 虚拟机Centos设置静态IP

    首先确保虚拟网卡(VMware Network Adapter VMnet8)是开启的,然后在windows的命令行里输入“ipconfig /all”,找到VMware Network Adapte ...

  9. 小记IptabLes和IptabLex病毒清理过程

    去年有台Linux服务器被黑了,看了500万行日志(现在觉得当时好厉害呀),反正当时的日志文件有700Mb以上大.前两天师兄告诉我,信息中心的老师给他说我们有台服务器应该是被人入侵了,当作内网的跳板, ...

  10. SSH管理(重启 停止 运行 安装)centos7

    下面整理经常用到管理SSH服务的命令,方便复制哈. SSH服务状态 systemctl status sshd.service SSH运行命令 service sshd start SSH重启命令 s ...