Python实现多种SSH连接与文件传输
Python实现SSH控制
使用Python进行基于口令认证的连接:
1 #加载paramiko包
2 import paramiko
3 #创建新的SSH对象
4 Client=paramiko.SSHClient()
5 #允许以自动的方式连接不在Host表中的主机
6 Client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
7 #连接到主机
8 Client.connect(hostname="172.16.74.133",port=22,username="kali",password="kali")
9 #执行命令并输入
10 while True:
11 STr1 = input("请输入命令:")
12 stdin,stout,stderr=Client.exec_command(STr1)
13 print(stout.read().decode())
使用Python进行基于密钥认证的连接:
1 #加载paramiko包
2 import paramiko
3 #设置私钥所在路径
4 private_key_path="./id_usa"
5 #加载私钥
6 key_pri=paramiko.RSAKey.from_private_key_file(private_key_path,password="wang")
7 #创建新的SSH连接实例
8 Client=paramiko.SSHClient()
9 #允许不在konw_hosts文件中的主机
10 Client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
11 Client.connect(hostname="172.16.74.133",port=22,username="root",pkey=key_pri)
12 while True:
13 Some=input("Input:")
14 stdin,stdout,stderr=Client.exec_command(Some)
15 print(stdout.read().decode())
使用SFTP函数实现从服务器上下载和传输文件:
思路:
1.创建transport实例,并通过SSH连接
2.通过transport实例继而创建stfp对象,然后使用sftp对象的put和get方法进行文件传输
1 #加载paramiko模块
2 import paramiko
3 #创建Transport实例
4 trans=paramiko.Transport("172.16.74.133",22)
5 #设置私钥路径
6 key_path="./id_usa"
7 #加载私钥
8 key=paramiko.RSAKey.from_private_key_file(key_path,password="wang")
9 #进行认证连接登录
10 trans.connect(username="root",pkey=key)
11 #创建sftp对象
12 sftp=paramiko.SFTPClient.from_transport(trans)
13 #上传文件
14 sftp.put("./id_rsa",'/etc/haha')
15 #下载文件
16 sftp.get("/etc/passwd","./passwd")
总结:使用Python的paramiko库可以实现对Linux系统是SSH连接操作并执行任意命令与文件下载,通过此次操作,熟悉了Python对Linux的连接与密钥认证方式。
Python实现多种SSH连接与文件传输的更多相关文章
- windows远程连接老是出问题?如何使用Radmin进行云服务器的远程连接与文件传输?
(windows远程连接老是出错怎么办?云服务器远程连接一直有问题怎么办?如何用对多台windows电脑远程连接怎么办? 最近发现win的mstsc不好用,偶然想起Radmin这款老牌软件,利用Rad ...
- python学习之利用socketserver的文件传输
使用socketserver进行多用户的文件传输 服务端 class FtpServer(socketserver.BaseRequestHandler): # 继承socketserver.Base ...
- golang通过ssh实现远程文件传输
使用ssh远程操作文件, 主要是创建ssh, 直接上代码 import ( "fmt" "github.com/pkg/sftp" "golang.o ...
- ssh 中 远程文件传输
scp 命令是 SSH 中最方便有用的命令了,试想,在两台服务器之间直接传送文件,仅仅用 scp 一个命令就完全解决了. 你可以在一台服务器上 以 root 身份运行 #scp servername: ...
- FTPS (FTP over SSL) vs. SFTP (SSH 文件传输协议): 我们如何做出选择
第一个RFC的FTP协议发布通过网络使用FTP协议(由RFC 959或更高版本)的文件传输始于1980年,FTP提供上传,下载和删除文件,创建和删除目录,读取目录内容的功能.虽然FTP是非常受欢迎的, ...
- ZT android -- 蓝牙 bluetooth (四)OPP文件传输
android -- 蓝牙 bluetooth (四)OPP文件传输 分类: Android的原生应用分析 2013-06-22 21:51 2599人阅读 评论(19) 收藏 举报 4.2源码AND ...
- 关于xshell和文件传输相关
Xshell连接linux系统 下载Xshell后启动软件 不能连接,没有弹出输入账户和密码时在linux中执行 然后再次执行Xshell 连接成功 文件传输 点击Xshell的文件传输 会引导你去安 ...
- Xshell通过ssh方式连接Linux服务器,通过Xftp进行文件传输
准备工作: 一.Linux服务器一台,并配置ssh(本文以腾讯云服务器为例). 1.生成秘钥 打开腾讯云控制台,依次选择:总览->云服务器->SSH秘钥 点击创建秘钥,输入秘钥名称,点击确 ...
- 【Python】 SSH连接的paramiko
paramiko *paramiko需要PyCrypto模块的支持 paramiko支持通过SSH协议进行一些操作,比如远程执行命令,上下传文件等等 用法: ① 远程命令 ssh = paramiko ...
随机推荐
- 痞子衡嵌入式:以i.MXRT1xxx的GPIO模块为例谈谈中断处理函数(IRQHandler)的标准流程
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是以i.MXRT的GPIO模块为例谈谈中断处理函数(IRQHandler)的标准流程. 在痞子衡旧文 <串口(UART)自动波特率识 ...
- ABP Framework V4.4 RC 新增功能介绍
目录 新增功能概述 启动模板删除 EntityFrameworkCore.DbMigrations 项目 CMS-Kit 动态菜单管理 Razor引擎对文本模板的支持 DbContext/Entiti ...
- 组建Redis集群遇到`GLIBC_2.14' not found和ps -ef 不显示用户名
RHEL6.9组建Redis sentinel集群遇到两个问题 今天在组件Redis sentinel 集群时,遇到两个问题,之前已经组建多次,都没碰到类似问题,在解决这两个问题时,耗费些时间. 问题 ...
- 前端 JavaScript 实现一个简易计算器
前端使用 JavaScript 实现一个简易计算器,没有难度,但是里面有些小知识还是需要注意的,算是一次基础知识回顾吧. 题目 实现一个简易版的计算器,需求如下: 1.除法操作时,如果被除数为0,则结 ...
- buu 新年快乐
一.查壳 发现是upx的壳. 二.拖入ida,发现要先脱壳. 题外话.总结一下手动脱壳,esp定律: 1.先单步到只有esp红色时,右键数据窗口跟随. 2.到数据窗口后,左键硬件访问,byte和wor ...
- 【重学Java】Stream流
Stream流 体验Stream流[理解] 案例需求 按照下面的要求完成集合的创建和遍历 创建一个集合,存储多个字符串元素 把集合中所有以"张"开头的元素存储到一个新的集合 把&q ...
- spring boot 集成mqtt
1.pom文件中添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifact ...
- 小哈学Python ----XML
XML XML是实现不同语言或程序之间进行数据交换的协议,XML文件格式如下: <data> <country name="Liechtenstein"> ...
- 小哈学python----一行代码输出特定字符"Love"拼成的心形
print('\n'.join([''.join([('Love'[(x-y) % len('Love')] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2* ...
- 数据库:随机显示n条记录
1.sqlite3数据库select * from QG order by random() limit 6 以下显示前10条记录 2.SQL Server数据库select top 10 * f ...