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管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功能只是堡垒 ...
随机推荐
- poi导出word、excel
在实际的项目开发中,经常会有一些涉及到导入导出的文档的功能.apache开源项目之一poi对此有很好的支持,对之前的使用做一些简要的总结. 1,导入jar 为了保证对格式的兼容性,在项目的pom.xm ...
- Python 中xrange和range区别
先看看Python help()的说明 help(range) Help on built-in function range in module __builtin__: range(...) ra ...
- php多文件上传
多文件上传<input type="file" name="file[]" multiple /> <?php function reArra ...
- 【zz】面试题之寻找丢失的数字
据传说是MS/Google等等IT名企业的面试题: 有一组数字,从1到n,中减少了一个数,顺序也被打乱,放在一个n-1的数组里 请找出丢失的数字,最好能有程序,最好算法比较快 BTW1: 有很多种方法 ...
- Linux服务器init 5启动图形界面,报错Retrigger failed udev events的解决方法
1.开启linux系统的桌面环境,使用startx未成功,报如下错误: 提示:Retrigger failed udev events [root@ /]# startx xauth: creatin ...
- UIView--震动效果
//震动效果- (void)shake:(UIView *)view{ CGRect frame = view.frame; CAKeyframeAnimation *shakeAnimation = ...
- [LeetCode] Single Number
Given an array of integers, every element appears twice except for one. Find that single one. Note: ...
- css3动画效果
css3中的transform中有旋转,放缩,倾斜,平移的功能,分别对应的属性是:rotate,scale,skew,translate 旋转:(rotate) [css] view plaincop ...
- 记一次windows下物理迁移数据库的过程
背景: 最近因为一次设备故障,导致一台运行windows环境下的机器无法启动,里面有一个正在使用的财务数据库,该数据库也只是每月使用一次,需要把物理数据迁移出来,于是拔出了故障机器的硬盘,通 ...
- Apache配置过程
要在一台主机上搭建多个网站,最简单的办法就是给不同的网站分配不一样的端口.下面我以Ubuntu 14.04 + Apache 2.4.7为例说一下在搭建过程中的一些注意事项. 1. 主配置文件是/et ...