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 ...
随机推荐
- 关于基于Nexus3和Docker搭建私有Nuget服务的探索
背景简介 NuGet是Microsoft开发平台的程序集包管理器,它由客户端工具和服务端站点组成,客户端工具提供给用户管理和安装/卸载软件程序包,以及打包和发布程序包到NuGet服务端站点等功能,服务 ...
- 9.4、安装zabbix(3)
(10)监控mysql: 1)安装mariadb-server: [root@slave-node1 ~]# yum install mariadb-server [root@slave-node1 ...
- 9、zabbix监控
9.1.监控: 1.初级(凡人): (1)识别监控的对象: (2)理解监控的对象: (3)细分监控对象的指标: (4)确定告警的基准线: 2.预中级(飞仙): (1)工具化和监控分离: (2)监控对象 ...
- (C++)戳西瓜
写在前面的话: 请不要吝啬你的点赞!!! 题目描述 有 n 个西瓜,编号为0 到 n-1,每个西瓜上都标有一个数字,这些数字存在数组 nums 中. 现在要求你戳破所有的西瓜.每当你戳破一个西瓜 i ...
- 附加数据库出现 无法打开物理文件 操作系统错误 5:拒绝访问 SQL
刚刚从公司的电脑上考到自己刚刚装好系统的笔记本上面,出现了问题: 无法打开物理文件 操作系统错误 5:拒绝访问 . 网上找了下解决方法: 找到需要导入的 mdf和ldf 修改它的权限为完全控制,不 ...
- keycloak~OIDC&OAuth2&自定义皮肤
1 OpenID & OAuth2 & SAML 1.1 相关资料 https://github.com/keycloak/keycloak https://www.keycloak. ...
- 『无为则无心』Python序列 — 24、Python序列的推导式
目录 1.列表推导式 (1)快速体验 (2)带if的列表推导式 (3)多个for循环实现列表推导式 2.字典推导式 (1)创建一个字典 (2)将两个列表合并为一个字典 (3)提取字典中目标数据 3.集 ...
- 使用RSA和DES保护的Socket通信
基本要求:将DES加密算法应用于网络通信,使用RSA算法自动分配密钥,设计好界面,可验证自动生成的密钥和加解密正确的结果. 具体实现要求:客户端和服务器建立连接后,客户端生成一个随机DES密钥;服务器 ...
- acwing 4 多重背包问题 I
多重背包 有 n种物品 一共有 m大小的背包,每种物品的价值 大小 个数 为 s[i],v[i],num[i]; #include<bits/stdc++.h>//cmhao #defin ...
- Luogu P2051「AHOI2009」中国象棋
看见第一眼觉得是状压 \(\text{DP}\)?观察数据范围发现不可做 那按照最常规思路设状态试试? 设状态为\(dp[i][j]\)表示\(i*j\)的棋盘的方案数 好像转移不了欸 要不再来一维? ...