python3.x Day6 paramiko
python3 paramiko模块,用来进行远程操作linux服务器,利用的就是ssh
- #利用用户名,密码,进行连接
- import paramiko
- #创建一个SSH对象
- ssh=paramiko.SSHClient()
- #允许连接不在know_hosts文件中的主机
- ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
- #连接一个主机
- ssh.connect(hostname='192.168.1.2',port=22,username='root',password='root123')
- #执行命令
- stdin,stdout,stderr=ssh.exec_command('df -h')
- #获取执行结果
- result_right=stdout.read().decode("utf-8")
- result_error=stderr.read().decode("utf-8")
- print("result_right:%s"%result_right)
- print("result_error:%s"%result_error)
- #关闭连接
- ssh.close()
- #利用私钥,进行连接
- import paramiko
- #生成ssh实例
- ssh=paramiko.SSHClient()
- #配置私钥,自己有个身份
- pk=paramiko.RSAKey.from_private_key_file(filename="ip2_rsa_key")
- #允许连接不在know_hosts文件中的主机
- ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
- #连接信息,pkey就是目标服务器的私钥,要求对方服务器有自己对应的公钥
- ssh.connect(hostname="192.168.1.8",port=22,username='root',pkey=pk)
- #执行命令
- stdin,stdout,stderr=ssh.exec_command("df -h;ifconfig")
- res=stdout.read()
- print(res.decode("utf-8"))
- ssh.close()
利用paramiko,实现scp的文件上传下载
- import paramiko
- #创建scp的连接通道
- scp_tran=paramiko.Transport(("192.168.1.2",22))
- scp_tran.connect(username='root',password='root123')
- #把连接通道给SFTPClient,生成一个scp实例
- scp=paramiko.SFTPClient.from_transport(scp_tran)
- #上传文件
- scp.put("E:\\python学习51cto\\wy_home_temp\\temp.txt","/root/temp.txt")
- #下载文件
- scp.get("/root/temp.txt","E:\\python学习51cto\\temp.txt")
- #关闭连接
- scp_tran.close()
- #这是利用私钥进行的连接
- import paramiko
- #创建sftp的transport连接
- scp_tran=paramiko.Transport(("192.168.1.8",22))
- #定义python程序的一个私钥,与目标服务器的公钥匹配的,其实是把当前python的私钥公钥对中的公钥扔给服务器以后就匹配了
- pk=paramiko.RSAKey.from_private_key_file("ip2_rsa_key")
- #开启transport连接,建链
- scp_tran.connect(username="root",pkey=pk)
- #弄一个sftp客户端出来,进行具体的文件传输
- scp=paramiko.SFTPClient.from_transport(scp_tran)
- #上传文件
- scp.put(localpath="ssh_pkey.py",remotepath="/root/ssh_pkey.py")
- #下载文件
- scp.get(remotepath="/root/ssh_pkey.py",localpath="E:\\python学习51cto\\ttttttt")
- #关闭连接
- scp_tran.close()
python3.x Day6 paramiko的更多相关文章
- python3下的paramiko 安装
环境为centos6.7 python3为源码编译安装的,系统自带的python2 可以直接使用paramiko模块,但是在py3的环境下加载出错,所有需要安装新的paramiko 模块: 上了par ...
- CentOS7 Python3上安装paramiko
1. CentOS 7下安装Python3.5 CentOS7默认安装了python2.7.5,要用 Python3需要自己手动安装.注意不要删除python2. 1.1 下载python3源码包 w ...
- Python3下的paramiko模块
paramiko模块是基于Python实现的SSH远程安全连接,用于SSH远程执行命令.文件传输等功能. 默认Python没有,需要手动安装:pip install paramiko SSH密码认证远 ...
- python3.x Day6 socketserver
socketserver是啥? 简化了编写网络服务器,就是对于socket的再一次封装sockerserver包含4个类可以使用:A=socketserver.TCPServer() #用于TCP/I ...
- windos环境python3.5安装 paramiko
一.执行命令pip install paramiko,情况如下: C:\Users\ZFH>pip install paramikoCollecting paramiko Downloadin ...
- python3.x Day6 IO多路复用
IO多路复用import asyncio 这个是异步IO模块 这个还不知道怎么用 select poll epoll 都是IO多路复用 windows 仅支持select linux2.6以后 支持e ...
- python3.x Day6 协程
协程:#定义来自牛人alex博客协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程.协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈 ...
- python3.x Day6 多进程
多进程:1.每个子进程申请到的资源都是独立的,不与其他进程共享.2.语法上和线程基本上差不多,使用multiprocessing.Process(target=xxxx,args=(xxx,xxx,x ...
- python3.x Day6 多线程
线程???进程????区别???何时使用??? 进程:是程序以一个整体的形式暴露给操作系统管理,里边包含了对各种资源的调用,内存的使用,对各种资源的管理的集合,这就叫进程 线程:是操作系统最小的调度单 ...
随机推荐
- 洛谷 P4012 深海机器人问题 【最大费用最大流】
和火星那个有点像,但是这个价值直接在路径上,不用拆点,对于每条价值为w的边(i,j),连接(i,j,1,w)(i,j,inf,0),表示价值只能取一次,然后连接源点和所有出发点(s,i,k,0),所有 ...
- (图论)51NOD 1212 无向图最小生成树
N个点M条边的无向连通图,每条边有一个权值,求该图的最小生成树. 输入 第1行:2个数N,M中间用空格分隔,N为点的数量,M为边的数量.(2 <= N <= 1000, 1 <= M ...
- django views视图函数
Django views.py视图文件 一. 创建views.py文件,在工程文件夹根目录创建views.py视图文件,其实任意文件名都可以,使用views是为了遵循传统. 注:所有的views函数都 ...
- 动态链接库(DLL) 分类: c/c++ 2015-01-04 23:30 423人阅读 评论(0) 收藏
动态链接库:我们经常把常用的代码制作成一个可执行模块供其他可执行文件调用,这样的模块称为链接库,分为动态链接库和静态链接库. 对于静态链接库,LIB包含具体实现代码且会被包含进EXE中,导致文件过大, ...
- Java Annontation(注解)详解
java中经常用到注解(Annontation),索性整理了下关于注解的相关知识点: 一.概念 Annontation是Java5开始引入的新特征,类似与.NET 中的attribute.中文名称一般 ...
- 445 Add Two Numbers II 两数相加 II
给定两个非空链表来代表两个非负整数.数字最高位位于链表开始位置.它们的每个节点只存储单个数字.将这两数相加会返回一个新的链表.你可以假设除了数字 0 之外,这两个数字都不会以零开头.进阶:如果输入链表 ...
- 204 Count Primes 计数质数
计算所有小于非负整数 n 的质数数量. 详见:https://leetcode.com/problems/count-primes/description/ Java实现: 埃拉托斯特尼筛法:从2开始 ...
- AJPFX关于通过索引获取最大值的思路
/*** 通过索引获取最大值***/public class Test1 { public static void main(String[] args) { ...
- Spring框架学习-搭建第一个Spring项目
步骤一:下载Spring开发包. 官网:https://spring.io/ 下载地址:https://repo.spring.io/libs-release-local/org/ ...
- R in action读书笔记(22)第十六章 高级图形进阶(下)
16.2.4 图形参数 在lattice图形中,lattice函数默认的图形参数包含在一个很大的列表对象中,你可通过trellis.par.get()函数来获取,并用trellis.par.set() ...