SSH协议的Python实现paramiko
paramiko安装
SSH是一个协议,paramiko 是一个Python 的库,该库支持sshv2协议,实现了对远程服务器执行操作
安装命令:
pip3 install paramiko
SSHClient类与SFTPClient类
paramiko包含两个核心组建,分别是SSHClient和SFTPClient
- SSHClient:类似于Linux下的ssh命令,用于执行远程命令。
- SFTPClient:类似于Linux下的sftp命令,实现远程文件操作
SSHClient类的方法
- connect:实现远程连接认证,只有hostname 是必传参数
connect(self,hostname,port=22,username=None,password=None,
pkey=None,key_filename=None,timeout=None,
allow_agent=True,look_for_keys=True,compress=False)
- set_missing_host_key_poilcy:设置没有做免密的主机应对的策略
- exec_command:在远程服务器上执行命令的方法
- open_sftp:在远程服务器上打开sftp回话
SFTPClient类的方法
- put:上传文件
- get:下载文件
- mkdir:创建目录
- remove:移除文件
- rmdir:删除目录
- rename:重命名文件/目录
- stat:查看文件详细信息
- listdir:列出指定目录下的文件内容
paramiko的基本使用
paramiko.SSHClient两种认证方式
在执行远程服务器操作之前,首先需要连接远程服务器并进行认证。
paramiko 与 ssh命令一样,支持密码认证和秘钥认证两种方式
使用密码认证
import paramiko
ip = "192.168.32.130"
port = 22
user = "root"
pwd = "123456"
# 使用密码认证
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)
ssh.connect(ip,port,user,pwd)
使用秘钥认证
import paramiko
ip = "192.168.32.130"
port = 22
user = "root"
pwd = "123456"
# 使用密钥认证
ssh = paramiko.SSHClient()
ssh.connect(ip,port,user,key_filename="私钥文件")
使用方法
远程执行命令
import paramiko
ip = "192.168.32.130"
port = 22
user = "root"
pwd = "123456"
### 远程执行命令
ssh = paramiko.SSHClient()
# 自动添加免密
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接远程主机
ssh.connect(ip,port,user,pwd)
command = input("请输入你要执行的命令").strip()
# 接收输出结果
stdin,stdout,stderr = ssh.exec_command(command)
res = stdout.readlines() + stderr.readlines()
for line in res:
print(line.strip())
ssh.close()
上传文件到远程机器
import paramiko
ip = "192.168.32.130"
port = 22
user = "root"
pwd = "123456"
t = paramiko.Transport((ip,port))
t.connect(username=user,password=pwd)
sftp = paramiko.SFTPClient.from_transport(t)
# 上传至远程服务器的目录/文件
remotepath = "/tmp/test1.txt"
# 本地的一个文件
localpath = "/tmp/test.txt"
# 上传
sftp.put(localpath,remotepath)
t.close()
从远程机器下载文件
import paramiko
ip = "192.168.32.130"
port = 22
user = "root"
pwd = "123456"
t = paramiko.Transport((ip,port))
t.connect(username=user,password=pwd)
sftp = paramiko.SFTPClient.from_transport(t)
# 上传至远程服务器的目录/文件
remotepath = "/tmp/test1.txt"
# 本地的一个文件
localpath = "/tmp/test.txt"
# 下载
sftp.get(remotepath,localpath)
t.close()
SSH协议的Python实现paramiko的更多相关文章
- 使用python的Paramiko模块登陆SSH
使用python的Paramiko模块登陆SSH paramiko是用Python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. python的paramiko模块 ...
- paramiko:实现ssh协议,对linux服务器资源的访问
介绍 网络传输是遵循协议的,比如SSH,paramiko则是实现了SSHv2协议的一个python库(底层使用的是cryptography).有了paramiko之后,我们便可以通过python使用s ...
- (转)python通过paramiko实现,ssh功能
python通过paramiko实现,ssh功能 1 import paramiko 2 3 ssh =paramiko.SSHClient()#创建一个SSH连接对象 4 ssh.set_missi ...
- Python之paramiko基础
一.Paramiko模块 paramiko是一个自由和开放源码模块使用,实现SSH2协议安全(认证和加密)连接到远程计算机. 二.windwos下安装paramiko模块 #在DOS命令行执行如下命令 ...
- 如何进行服务器的批量管理以及python 的paramiko的模块
最近对公司的通道机账号进行改造管理,全面的更加深入的理解了公司账号管理的架构.(注:基本上所有的机器上的ssh不能使用,只有部分机器能够使用.为了安全的角度考虑,安装的不是公版的ssh,而都是定制版的 ...
- python的paramiko模块
paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.paramiko支持Linux, Solaris, BSD, MacOS X, ...
- (转)python的paramiko模块
python的paramiko模块 原文:http://www.cnblogs.com/breezey/p/6663546.html paramiko是用python语言写的一个模块,遵循S ...
- Python网络模块Paramiko基本使用
一.Paramiko简介 首先来看谁创造了paramiko,是一个名叫Jeff Forcier创建了paramiko项目.项目主页:http://www.paramiko.org,可以去看上面有很多相 ...
- python 之 paramiko
""" 对app进行一些路由设置 """ """ 对socketio进行一些监听设置 "" ...
随机推荐
- php+jquery 上拉加载
<script type="text/javascript"> var resflow = true,pages =2; var ps=$("#ids&quo ...
- csps模拟9495凉宫春日的忧郁,漫无止境的八月,简单计算,格式化,真相题解
题面:https://www.cnblogs.com/Juve/articles/11767239.html 94,95的T3都没改出来,是我太菜了... 凉宫春日的忧郁: 比较$x^y$和$y!$的 ...
- 0916CSP-S模拟测试赛后总结
40分-rank35. 不想找借口.实力不行. 赛时状态没出什么大问题.就是实力太弱了. 天皇又AK了.去问了一下,他说全是简单题…… 后来发现一些人用非正解AC了. 但是天皇题题正解题题首切啊. 还 ...
- jenkins实现不同角色查看不同视图
1.安装插件Role-based Authorization Strategy 2.开启插件 系统管理>>>全局安全配置 3.创建角色和用户 4.登陆查看,只能看到travel开头的 ...
- R语言中的线性判别分析_r语言 线性判别分析
R语言中的线性判别分析_r语言 线性判别分析 在R语言中,线性判别分析(Liner Discriminant Analysis,简称LDA),依靠软件包MASS中有线性判别函数lqa()来实现.该函数 ...
- Web中常见的绕过和技巧
SQL注入 十六进制绕过引号 slect table_name from information_schema.table where table_schema="sqli"; s ...
- AI入门---从破解AI开始
我这里说的AI,并不是人工智能(Artificial Intelligence),只是Adobe illustrator.旁边有做设计的朋友,在他的指引下,对这个工具还颇感兴趣.就先下载个工具,闲暇时 ...
- 第十五篇:java操作oracle踩坑之旅
最近刚做完mysql的各种需求,项目要满足oracle数据库,于是走上了漫漫的踩坑之路,同行可以看看以免踩坑……第一条:oracle建表的时候不需要在建表sql语句后指定默认字符集 DEFAULT C ...
- WPF实现Drag/Drop操作
原文:WPF实现Drag/Drop操作 有时候我们方便用户操作,总会把一下Copy/Paste 或者 input操作转换为Drag/Drop, WPF 跟之前WinForm 一样提供了一些实现方式方便 ...
- 廖雪峰Java14Java操作XML和JSON-1XML-4第三方XML库
总结: 使用Jackson可以快速在XML和JavaBean之间互相转换 可使用Annotation定制序列化和反序列化