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连接与文件传输的更多相关文章

  1. windows远程连接老是出问题?如何使用Radmin进行云服务器的远程连接与文件传输?

    (windows远程连接老是出错怎么办?云服务器远程连接一直有问题怎么办?如何用对多台windows电脑远程连接怎么办? 最近发现win的mstsc不好用,偶然想起Radmin这款老牌软件,利用Rad ...

  2. python学习之利用socketserver的文件传输

    使用socketserver进行多用户的文件传输 服务端 class FtpServer(socketserver.BaseRequestHandler): # 继承socketserver.Base ...

  3. golang通过ssh实现远程文件传输

    使用ssh远程操作文件, 主要是创建ssh, 直接上代码 import ( "fmt" "github.com/pkg/sftp" "golang.o ...

  4. ssh 中 远程文件传输

    scp 命令是 SSH 中最方便有用的命令了,试想,在两台服务器之间直接传送文件,仅仅用 scp 一个命令就完全解决了. 你可以在一台服务器上 以 root 身份运行 #scp servername: ...

  5. FTPS (FTP over SSL) vs. SFTP (SSH 文件传输协议): 我们如何做出选择

    第一个RFC的FTP协议发布通过网络使用FTP协议(由RFC 959或更高版本)的文件传输始于1980年,FTP提供上传,下载和删除文件,创建和删除目录,读取目录内容的功能.虽然FTP是非常受欢迎的, ...

  6. ZT android -- 蓝牙 bluetooth (四)OPP文件传输

    android -- 蓝牙 bluetooth (四)OPP文件传输 分类: Android的原生应用分析 2013-06-22 21:51 2599人阅读 评论(19) 收藏 举报 4.2源码AND ...

  7. 关于xshell和文件传输相关

    Xshell连接linux系统 下载Xshell后启动软件 不能连接,没有弹出输入账户和密码时在linux中执行 然后再次执行Xshell 连接成功 文件传输 点击Xshell的文件传输 会引导你去安 ...

  8. Xshell通过ssh方式连接Linux服务器,通过Xftp进行文件传输

    准备工作: 一.Linux服务器一台,并配置ssh(本文以腾讯云服务器为例). 1.生成秘钥 打开腾讯云控制台,依次选择:总览->云服务器->SSH秘钥 点击创建秘钥,输入秘钥名称,点击确 ...

  9. 【Python】 SSH连接的paramiko

    paramiko *paramiko需要PyCrypto模块的支持 paramiko支持通过SSH协议进行一些操作,比如远程执行命令,上下传文件等等 用法: ① 远程命令 ssh = paramiko ...

随机推荐

  1. lvm脚本

    # 2 SWAP 20GB SWAP # 3 /usr/sap 50GB /usr/sap # 4 Shared 1 x 512 GiB /hana/shared # 5.6 Log 2 x 300 ...

  2. 32、JavaScript介绍

    32.1.JavaScript概述: 1.JavaScript的历史: 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中),后将其改名Scr ...

  3. 基于Redis的分布式锁设计

    前言 基于Redis的分布式锁实现,原理很简单嘛:检测一下Key是否存在,不存在则Set Key,加锁成功,存在则加锁失败.对吗?这么简单吗? 如果你真这么想,那么你真的需要好好听我讲一下了.接下来, ...

  4. 在docker中使用nginx部署前端项目

    前言 部署了三个nginx用于前端项目, 并使用keepalived部署好热备, 所以总共有5个nginx 创建好nginx的文件和配置 根据上面的指令创建好目录 mkdir /home/web/ng ...

  5. SpringBoot集成Quartz实现定时器

    SpringBoot+Quartz实现定时器,由于本人也是刚学习,不足之处请各位大神指正 .. 1.pom配置   <dependency>   <groupId>org.sp ...

  6. SQL查询语句中参数带有中文查询不到结果

    今天写个小demo的时候发现sql语句里面的username为中文的时候就不能查到正确结果,sql语句如下: String sql = "select * from user where u ...

  7. 根据使用者反馈,对开源项目 go-gin-api 新增两个功能

    目录 前言 接口返回的错误信息支持中英文 代码位置 使用方式 错误信息自定义 参数验证的错误信息支持中英文 代码位置 使用方式 错误信息语言包 示例 小结 推荐阅读 前言 根据使用者的反馈,对开源项目 ...

  8. Jmeter之cokie管理器和http默认值

    根据上文中,都配置好以后就可以开始启动了,点击启动,线程组里面就会开始记录你的网页请求.这里使用CNode网站做测试.我分别记录进行了"登入","话题创建",& ...

  9. Android 开发学习进程0.32 dwonloadmanager使用

    downloadmanager时Android系统下载器,使用系统下载器可以避免用stream流读入内存可能导致的内存溢出问题.以下为downloadmanager初始化部分.apkurl为下载网络路 ...

  10. ESP32S2获取sht30温湿度

    static const char *TAG = "i2c-temp"; static unsigned char sht30_buf[6]={0}; static float g ...