Python开发【第九章】:堡垒机实例
一、堡垒机前戏
开发堡垒机之前,先来学习Python的paramiko模块,该模块基于SSH用于连接远程服务器并执行相关操作
模块安装
C:\Program Files\Python 3.5\Scripts>pip3.5.exe install paramiko
如果报错pip install --upgrade pip 更新下pip继续上步安装就哦了
ssh客户端
创建用于连接远程服务器的客户端并执行基本命令
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#-Author-Lian import paramiko # 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname="192.168.20.219",port=22,username="root",password="zyw@123") # 执行命令
stdin,stdout,stderr = ssh.exec_command("df")
# 获取命令结果
result = stdout.read()
# 打印输出
print(result.decode()) # 关闭连接
ssh.close() # 程序输出
# Filesystem 1K-blocks Used Available Use% Mounted on
# /dev/mapper/VolGroup-lv_root
# 48966472 2169976 44302444 5% /
# tmpfs 502176 0 502176 0% /dev/shm
# /dev/sda1 487652 28375 433677 7% /boot
sshclient
基于公钥密钥连接
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#-Author-Lian import paramiko private_key = paramiko.RSAKey.from_private_key_file('id_rsa')
# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname="192.168.20.219",port=22,username="root",pkey=private_key) # 执行命令
stdin,stdout,stderr = ssh.exec_command("df")
# 获取命令结果
result = stdout.read()
# 打印输出
print(result.decode()) ssh.close() # 程序输出
# Filesystem 1K-blocks Used Available Use% Mounted on
# /dev/mapper/VolGroup-lv_root
# 48966472 2169976 44302444 5% /
# tmpfs 502176 0 502176 0% /dev/shm
# /dev/sda1 487652 28375 433677 7% /boot
sshclient-rsa
sftp客户端
创建用于连接远程服务器的客户端并并进行上传、下载
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#-Author-Lian import paramiko transport = paramiko.Transport(("192.168.20.219",22))
transport.connect(username="root",password="zyw@123") sftp = paramiko.SFTPClient.from_transport(transport)
# 上传文件
sftp.put("location.py","/tmp/test.py")
# 下载文件
sftp.get("location.py","/tmp/test.py") transport.close()
sftpclient
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#-Author-Lian import paramiko private_key = paramiko.RSAKey.from_private_key_file("id_rsa")
transport = paramiko.Transport(("192.168.20.219",22))
transport.connect(username="root",pkey=private_key) sftp = paramiko.SFTPClient.from_transport(transport)
# 上传文件
sftp.put("location.py","/tmp/test.py")
# 下载文件
#sftp.get("location.py","/tmp/test.py") transport.close()
sftpclient-rsa
创建密钥
[root@bogon tmp]# ssh-keygen -t rsa
上面的命令在服务端linux上执行的,用root登录的,会在/root/.ssh/目录下生产id.rsa(私钥)、id.rsa.pub(公钥)。把id.rsa拷贝到客户端(本次测试的是windows),id.rsa.pub改名为authorized_keys依然放到目录/root/.ssh/目录下
私钥放到客户端,公钥放到要免密码登录的服务器上,多台就放置到多台上!!!这个我之前竟然忘了啊啊啊啊啊啊!!!
Python开发【第九章】:堡垒机实例的更多相关文章
- Python之路:堡垒机实例
堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: 1 ...
- Python之路:堡垒机实例以及数据库操作
一.堡垒机前戏 开发堡垒机之前,先学习Python的paramiko模块,该模块基于SSH用于连接远程服务器并执行相关操作. SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: ...
- Python之路【第八篇】:堡垒机实例以及数据库操作
Python之路[第八篇]:堡垒机实例以及数据库操作 堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient ...
- Python自动化开发 - 堡垒机实例
本节内容 一.堡垒机介绍 1. SSHClient 2. SFTPClient 3. Transport 二.堡垒机实现 一.堡垒机介绍 1. SSHClient 用户连接远程服务器并执行基本命令 1 ...
- Python之路第一课Day9--随堂笔记之一(堡垒机实例以及数据库操作)未完待续....
一.堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: ...
- Python 13 简单项目-堡垒机
本节内容 项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功 ...
- python 教程 第九章、 类与面向对象
第九章. 类与面向对象 1) 类 基本类/超类/父类被导出类或子类继承. Inheritance继承 Inheritance is based on attribute lookup in Py ...
- day28 CRM万能权限组件开发 && 主机管理-堡垒机
1,CRM项目实战-万能权限组件开发参考博客:http://www.cnblogs.com/alex3714/articles/6661911.html 参考代码:https://github.com ...
- Python之路,Day13 - 堡垒机
项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功能只是堡垒 ...
随机推荐
- 关于Android 5.0 网络图标叹号的解决办法
那么下面就给出解决方法(无需root): 1.完全屏蔽网络检查功能,最简单快速,但是就没有办法提示wifi登录: adb shell "settings put global captive ...
- Power BI for Office 365(五)Power View第二部分
继续上一篇Power View 报表的创建, Anna觉得为每一个大类创建一张单独的报表似乎很不现实,所以她决定按照另外一种方式来设计报表,从而满足最终用户想要查看不同大类下的数据的要求. 于是Ann ...
- Android中的ANR
有过Android开发经历的人都不会对ANR陌生,它和崩溃一样是程序设计的问题.本文将以较为深入的视角来介绍什么是ANR,出现场景,如何避免以及如何定位分析ANR,希望可以帮助大家在编写程序时有所帮助 ...
- Daily Scrum Meeting ——FifthDay
一.Daily Scrum Meeting照片 牛姐去工程师那边了,已经在群里给我汇报了.橙汁去北京参加ICPC了 二.Burndown Chart 渐入佳境了,最后一礼拜了 三.项目进展 1.实现注 ...
- 同步、更新、下载Android Source & SDK from 国内镜像站(转载)
同步.更新.下载Android Source & SDK from 国内镜像站 转自: 同步.更新.下载Android Source & SDK from 国内镜像站 Download ...
- Linux之head、tail、grep、cut等命令详解
http://jingyan.baidu.com/article/5225f26b6ab230e6fa0908be.html
- 【BZOJ】3521: [Poi2014]Salad Bar
题意 长度为\(n(1 \le n \le 1000000)\)的\(01\)字符串.找一个最长的连续子串\(S\),使得不管是从左往右还是从右往左取,都保证每时每刻已取出的\(1\)的个数不小于\( ...
- html的笔记
网页标准(w3c) ☞结构标准 html(骨骼)☞表现标准 CSS(美化师)☞行为标准 JavaScript(动作) 1.1 浏览器介绍 主流浏览器: ◆内核: 渲染引擎 ...
- <九>JDBC_获取插入记录的主键值
- *cf.4 贪心
D. Kostya the Sculptor time limit per test 3 seconds memory limit per test 256 megabytes input stand ...