Python SSH 的远程连接并执行命令和下载文件
来源:互联网 发布:程序员用什么键盘好 编辑:程序博客网 时间:2024/05/18 11:25
在运维工作中,我们经常使用 ssh 工具远程登陆主机来执行命令,对系统进行维护。在python的自动化运维中,要执行系统命令,最方便的还是借助于 python 的 ssh 功能编写日常脚本,简化工作。下面我们说下这个工具。
import paramiko
开始看第一个例子,在远端机器上运行 ' iostat ' 命令获得远端机器的 I/O 信息。
如果出现了如下提示:
SSHException: Server 'IP地址' not found in known_hosts
是因为你登陆的SSH主机SSH加密方式为 ecdsa ,而我们需要的加密方式为 rsa ,因此我们要改变 SSH 的加密方式使用如下命令登录远端主机,记得在登录前清掉 ./.ssh/known_hosts的内容。
使用如下命令登录执行。
ssh -o HostKeyAlgorithms = ssh-rsa 用户名@主机名或IP
我们在python中实现上面的功能。
35 : 建立一个paramiko的 Transport 对象,名字叫 trans
36 : 建立对象的连接。
37 : 建立一个 prarmiko 的 SSHClient 对象
38 : 将建立好的对象指定为以上的连接 Transport 对象
39 : 将执行的命令输入到 标准输入 输出 和错误。
40 : 输出标准输出。
用完了应该使用 Transprot 对象关闭连接。 trans.close()当然,我们也可以写成脚本执行。
既然我们可以执行命令,那么我们自然可以通过SSH下载文件。
先在远端机器的 /tmp/python 目录上建立5个文件用于实验。
写一个脚本把他们拉过来。
执行看结果
这里其实仅仅多了一个 paramiko.SFTPClient.from_transport 的对象。
最后通过 listdir 列出目录 get 命令拉过来。下载是 get 上传自然是 put 了。。
当然这只是简单的应用,有些需要 Key 的方法,大家可以去网上自己找。 多个key定义而已。有空在单开章节说这个吧。
阅读全文
0 0
- Python SSH 的远程连接并执行命令和下载文件
- 关于JSch的使用,执行ssh命令,文件上传和下载以及连接方式
- JAVA实现远程SSH连接linux并执行命令
- Python实现SSH远程登陆,并执行远程命令
- python 使用ssh远程登录并执行命令返回结果
- java 通过SSH方式连接远程主机并上传和下载文件
- java 通过SSH方式连接远程主机并上传和下载文件
- ssh远程执行命令并自动退出
- ssh远程执行命令并自动退出
- ssh远程执行命令并自动退出
- JSch连接SSH远程执行命令
- JSch连接SSH远程执行命令
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- 利用python fabric模块写的批量操作远程主机脚本(命令执行,上传、下载文件)
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- 数字图像分类
- synchronized详解
- Android开机黑屏问题分类
- Android——蓝牙Socket通信
- Logstash事件字段遍历
- Python SSH 的远程连接并执行命令和下载文件
- hdu 1232 畅通工程(并查集)
- codeforces Codeforces Round #407 Div2题解 B,C,D,E
- Leetcode 111
- 无限制获取GPS对应地址的一种方法
- 如何禁止浏览器中点回退按钮能回退到上一页?
- 精确显示本机ip 带颜色醒目效果
- 模板:并查集
- Dev 获取checkedListBoxControl值