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 ...
随机推荐
- ceph-csi源码分析(3)-rbd driver-服务入口分析
更多ceph-csi其他源码分析,请查看下面这篇博文:kubernetes ceph-csi分析目录导航 ceph-csi源码分析(3)-rbd driver-服务入口分析 当ceph-csi组件启动 ...
- CentOS7 安装搭建docker环境
一.Docker简介 Docker 版本 :版本分为:社区版CE 企业版EE 社区版分为stable和edge俩种发行方式: stable版本:是季度版发行(三月一更新) edge版本:是月度版发行 ...
- ptm经验总结
- 如何使用Linux lsblk命令列出块设备信息
译至:http://linoxide.com/linux-command/linux-lsblk-command/ lsblk命令(列出块设备)用于列出所有可用的块设备的信息,但是, 它并没有列出有关 ...
- leetcode TOP100 比特位计数
338. 比特位计数 题目描述: `给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回. 示例 1: 输入: 2 输出: ...
- Java Lambda 表达式你会用吗?
先看再点赞,给自己一点思考的时间,如果对自己有帮助,微信搜索[程序职场]关注这个执着的职场程序员.我有什么:Java技能,面试经验指导,简历优化,职场规划指导,技能提升方法,讲不完的职场故事,个人成长 ...
- 使用Hugo框架搭建博客的过程 - 页面模板
前言 最初在制作友链界面时,没有学习Hugo框架,一头雾水.网上有关的教程甚少,只能去学一遍Hugo. 在学习Hugo的过程中,了解了列表模板,分类模板.开发了几个功能页面,如:留言板,友链,记忆分类 ...
- gitlab用户,组,项目权限管控
前言:gitlab上的权限管控是非常重要的,尤其是很多研发人员开发一个项目.这个是我总结的权限管控. 1.这个是创建项目时开放权限设置 2.这个创建用户设置的权限 3.用户权限,5种类型用户是 ...
- 第16章 pyinstaller库的使用
pyinstaller库概述 将.py源代码,转换成无需源代码的可执行文件 .py文件通过pyinstaller转换成windows.linux以及mac的可执行文件 pyinstaller库是第三方 ...
- CTF反序列化逃逸
刷了一下CTF反序列化的题,去年没有好好了解.又补了一次PHP,害太菜了.每天看看别人的博客真的可以鼓舞人.简单记录一下两道字符串逃逸问题 推荐一个反序列化总结的很好的笔记https://www.cn ...