paramiko基本操作
paramiko 是一个用作远程控制的模块,它遵循SSH2协议,支持以加密和认证的方式来进行远程服务器的连接、操作、上传和下载。
官方文档地址:http://docs.paramiko.org/
paramiko基础操作主要有以下几种:执行远程命令,上传、下载文件
一、执行远程命令:
import paramiko hostname = '***'
username = 'root'
password = '***'
port = 22 ssh = paramiko.SSHClient() # 创建SSH对象
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 允许连接不在 know_hosts文件中的主机
ssh.connect(hostname=hostname, username=username, password=password, port=port) # 连接远程服务器
stdin, stdout, stderr = ssh.exec_command('ls') #执行远程命令,返回:标准输入、标准输出、标准错误(输出和错误只会返回一种)
print(stdout.read().decode())
ssh.close() # 关闭连接
输出结果:

这是root用户下目录:

这段代码其他地方都很好理解,只有一句话需要注意:
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
这个代码指的是将目标主机的信息添加至know_hosts文件中,
know_hosts文件在当前用户下的 .ssh文件夹下,是一个隐藏文件,当你第一次使用ssh 用户+@+ip的方式远程登录另一台机器时,系统也会提示你是否将目标机器的信息添加至know_hosts文件中。

但是我们在使用paramiko进行远程连接是,如果没有上边那一行代码,代码就会报错:

二、上传下载文件
import paramiko hostname = '***'
username = 'root'
password = '*****'
port = 22 transport = paramiko.Transport((hostname, port))
transport.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(transport)
# 将本地文件传至远程
sftp.put(r'C:\Users\Administrator\Desktop\1.png','/root/1.png')
# 将远程文件传至本地
sftp.get('/root/a.cpp', r'C:\Users\Administrator\Desktop\a.cpp')
sftp.close()
这个上传下载文件有一点类似与队列,放进去是put,取出来是get
想了解更多Python关于爬虫、数据分析的内容,欢迎大家关注我的微信公众号:悟道Python
paramiko基本操作的更多相关文章
- Python之操作Redis、 RabbitMQ、SQLAlchemy、paramiko、mysql
一.Redis Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.Redis是一个key-value存储系统.和 ...
- python16_day10【SelectWeb、SelectWget、paramiko、pymysql】
一.select实现Web框架(自定义WEB框架) 浏览器输入:http://127.0.0.1:8888/index.html import select import socket class F ...
- Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作
一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅仅memcached网站上列出的语言就有: ...
- Android Notification 详解(一)——基本操作
Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...
- Android Notification 详解——基本操作
Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...
- 三、Redis基本操作——List
小喵的唠叨话:前面我们介绍了Redis的string的数据结构的原理和操作.当时我们提到Redis的键值对不仅仅是字符串.而这次我们就要介绍Redis的第二个数据结构了,List(链表).由于List ...
- 二、Redis基本操作——String(实战篇)
小喵万万没想到,上一篇博客,居然已经被阅读600次了!!!让小喵感觉压力颇大.万一有写错的地方,岂不是会误导很多筒子们.所以,恳请大家,如果看到小喵的博客有什么不对的地方,请尽快指正!谢谢! 小喵的唠 ...
- 一、Redis基本操作——String(原理篇)
小喵的唠叨话:最近京东图书大减价,小喵手痒了就买了本<Redis设计与实现>[1]来看看.这里权当小喵看书的笔记啦.这一系列的模式,主要是先介绍Redis的实现原理(可能很大一部分会直接照 ...
- Linq查询基本操作
摘要:本文介绍Linq查询基本操作(查询关键字) - from 子句 - where 子句 - select子句 - group 子句 - into 子句 - orderby 子句 - join 子句 ...
随机推荐
- intellijidea课程 intellijidea神器使用技巧 4-2 抽取
1 抽取变量 Ctrl alt V 抽取变量 Ctrl alt C 抽取静态变量 顺带创建静态方法 Crrl alt F 抽取成员变量 2 抽取方法参数 Ctrl alt P 抽取参数,到方法体中 ...
- css透明边框实现
代码: css: .box1{ background: black; padding:20px; } .box2{ background: #fff; border: 10px soli ...
- 在Centos7中安装Docker并实例化Mysql
首先 本文是一篇安装流程,从初始的Centos7安装Docker后实例化一个Mysql的整个流程,其中会包含一些需要注意的疑点和坑. 实例化的Mysql是将数据和配置保存在宿主机. 注意,在安装Doc ...
- CSS如何居中元素
How to center in CSS 一步步拆解你的需求,是水平居中还是垂直居中?还是水平垂直居中?父容器是inline还是block,高度知不知,宽度造不造?一个子元素还是多个子元素?一行还是多 ...
- AndroidStudio多AppId多渠道快速打包
一直感觉AndroidStudio没有eclipse快,但是最近由于遇到一个问题不得不将工程迁移到AndroidStudio上,迁移后之前在eclipse上所做的所有批量打包又得重新在AndroidS ...
- android打包代码混淆
android应用打包代码混淆: 1.将project.propertier文件中的proguard.config=proguard-android.txt打开 拷贝指定的文件到应用中 2.更改 ...
- 《深入理解Java 7核心技术与最佳实践》读书笔记(2) Java语言动态性引言
Java语言是一种静态类型的编程语言.静态类型的含义是指在编译时进行类型检查.Java源代码中的每个变量的类型都要显式地进行声明.所有变量.方法的参数和方法返回值的类型在程序运行之前就必须是已知的.J ...
- 【Troubleshooting 】Outlook 客户端无法显示电子邮件图像
出于安全原因,Outlook 2013/2016不会在电子邮件中显示图像,但您可以右键单击图像并选择" 下载图片 "选项.我最近注意Outlook停止显示图像,并且没有下载图像的选 ...
- python 输出奇偶数并排序
random_numbers = [] for i in range(40): random_numbers.append(random.randint(1, 100)) num1 = [] num2 ...
- ztree的数据绑定
ztree用法(1)首先引用ztree的css和js <link type="text/css" rel="stylesheet" href=" ...