paramiko安装

SSH是一个协议,paramiko 是一个Python 的库,该库支持sshv2协议,实现了对远程服务器执行操作

安装命令:

pip3 install paramiko

SSHClient类与SFTPClient类

paramiko包含两个核心组建,分别是SSHClient和SFTPClient

  • SSHClient:类似于Linux下的ssh命令,用于执行远程命令。
  • SFTPClient:类似于Linux下的sftp命令,实现远程文件操作

SSHClient类的方法

  • connect:实现远程连接认证,只有hostname 是必传参数
connect(self,hostname,port=22,username=None,password=None,
pkey=None,key_filename=None,timeout=None,
allow_agent=True,look_for_keys=True,compress=False)
  • set_missing_host_key_poilcy:设置没有做免密的主机应对的策略
  • exec_command:在远程服务器上执行命令的方法
  • open_sftp:在远程服务器上打开sftp回话

SFTPClient类的方法

  • put:上传文件
  • get:下载文件
  • mkdir:创建目录
  • remove:移除文件
  • rmdir:删除目录
  • rename:重命名文件/目录
  • stat:查看文件详细信息
  • listdir:列出指定目录下的文件内容

paramiko的基本使用

paramiko.SSHClient两种认证方式

在执行远程服务器操作之前,首先需要连接远程服务器并进行认证。

paramiko 与 ssh命令一样,支持密码认证和秘钥认证两种方式

使用密码认证

import paramiko

ip = "192.168.32.130"
port = 22
user = "root"
pwd = "123456" # 使用密码认证
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)
ssh.connect(ip,port,user,pwd)

使用秘钥认证

import paramiko

ip = "192.168.32.130"
port = 22
user = "root"
pwd = "123456" # 使用密钥认证
ssh = paramiko.SSHClient()
ssh.connect(ip,port,user,key_filename="私钥文件")

使用方法

远程执行命令

import paramiko

ip = "192.168.32.130"
port = 22
user = "root"
pwd = "123456" ### 远程执行命令
ssh = paramiko.SSHClient()
# 自动添加免密
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接远程主机
ssh.connect(ip,port,user,pwd) command = input("请输入你要执行的命令").strip()
# 接收输出结果
stdin,stdout,stderr = ssh.exec_command(command)
res = stdout.readlines() + stderr.readlines()
for line in res:
print(line.strip())
ssh.close()

上传文件到远程机器

import paramiko

ip = "192.168.32.130"
port = 22
user = "root"
pwd = "123456" t = paramiko.Transport((ip,port))
t.connect(username=user,password=pwd)
sftp = paramiko.SFTPClient.from_transport(t)
# 上传至远程服务器的目录/文件
remotepath = "/tmp/test1.txt"
# 本地的一个文件
localpath = "/tmp/test.txt"
# 上传
sftp.put(localpath,remotepath)
t.close()

从远程机器下载文件

import paramiko

ip = "192.168.32.130"
port = 22
user = "root"
pwd = "123456" t = paramiko.Transport((ip,port))
t.connect(username=user,password=pwd)
sftp = paramiko.SFTPClient.from_transport(t)
# 上传至远程服务器的目录/文件
remotepath = "/tmp/test1.txt"
# 本地的一个文件
localpath = "/tmp/test.txt"
# 下载
sftp.get(remotepath,localpath)
t.close()

SSH协议的Python实现paramiko的更多相关文章

  1. 使用python的Paramiko模块登陆SSH

    使用python的Paramiko模块登陆SSH paramiko是用Python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. python的paramiko模块 ...

  2. paramiko:实现ssh协议,对linux服务器资源的访问

    介绍 网络传输是遵循协议的,比如SSH,paramiko则是实现了SSHv2协议的一个python库(底层使用的是cryptography).有了paramiko之后,我们便可以通过python使用s ...

  3. (转)python通过paramiko实现,ssh功能

    python通过paramiko实现,ssh功能 1 import paramiko 2 3 ssh =paramiko.SSHClient()#创建一个SSH连接对象 4 ssh.set_missi ...

  4. Python之paramiko基础

    一.Paramiko模块 paramiko是一个自由和开放源码模块使用,实现SSH2协议安全(认证和加密)连接到远程计算机. 二.windwos下安装paramiko模块 #在DOS命令行执行如下命令 ...

  5. 如何进行服务器的批量管理以及python 的paramiko的模块

    最近对公司的通道机账号进行改造管理,全面的更加深入的理解了公司账号管理的架构.(注:基本上所有的机器上的ssh不能使用,只有部分机器能够使用.为了安全的角度考虑,安装的不是公版的ssh,而都是定制版的 ...

  6. python的paramiko模块

        paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.paramiko支持Linux, Solaris, BSD, MacOS X, ...

  7. (转)python的paramiko模块

    python的paramiko模块  原文:http://www.cnblogs.com/breezey/p/6663546.html     paramiko是用python语言写的一个模块,遵循S ...

  8. Python网络模块Paramiko基本使用

    一.Paramiko简介 首先来看谁创造了paramiko,是一个名叫Jeff Forcier创建了paramiko项目.项目主页:http://www.paramiko.org,可以去看上面有很多相 ...

  9. python 之 paramiko

    """ 对app进行一些路由设置 """ """ 对socketio进行一些监听设置 "" ...

随机推荐

  1. CSS——元素的显示与隐藏

    元素的显示与隐藏 在CSS中有三个显示和隐藏的单词比较常见,我们要区分开,他们分别是 display visibility 和 overflow. 他们的主要目的是让一个元素在页面中消失,但是不在文档 ...

  2. mysql的卸载重装+导入大量数据失败的解决方案+工具执行和项目执行结果不同

    1.卸载 1>快捷键win+r输入regedit进入注册表 找到3个文件夹,全部删除 . HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eve ...

  3. System.IO.Directory.cs

    ylbtech-System.IO.Directory.cs 1.返回顶部 1. #region 程序集 mscorlib, Version=4.0.0.0, Culture=neutral, Pub ...

  4. Python 实现0-1背包

    代码: import numpy as np c=10 #背包容量 w=[2,2,6,5,4] #物品重量 v=[5,3,5,4,6] #物品价值 flag =[0,0,0,0,0] m=np.zer ...

  5. PAT甲级——A1117 Eddington Number【25】

    British astronomer Eddington liked to ride a bike. It is said that in order to show off his skill, h ...

  6. POJ 2074 /// 判断直线与线段相交 视野盲区

    题目大意: 将所有物体抽象成一段横向的线段 给定房子的位置和人行道的位置 接下来给定n个障碍物的位置 位置信息为(x1,x2,y) 即x1-x2的线段 y相同因为是横向的 求最长的能看到整个房子的一段 ...

  7. CAS机制详解

    目录 1. 定义 2. 实现原理 3. 无版本号CAS实战说明 4. CAS机制在Java中的应用 5. CAS的缺点 1. CPU开销过大 2. 不能保证代码块的原子性 3. ABA问题 6. JA ...

  8. JS规则 给变量取个名字(变量命名) 必须以字母、下划线或美元符号开头;区分大小写;不允许使用JS关键字或保留字

    给变量取个名字(变量命名) 我们为了区分盒子,可以用BOX1,BOX2等名称代表不同盒子,BOX1就是盒子的名字(也就是变量的名字). 我们赶快给变量取个好名字吧!变量名字可以任意取,只不过取名字要遵 ...

  9. h5对接jssdk支付分并调用开启支付分页面

    1.ws.config签名   调用ticket等获取ws.config的签名,下面会调用方法再调用方法时需要再次按照调用方法的签名 wx.config({ debug: true, // 开启调试模 ...

  10. gdb调试工具的使用

    GDB是一个由GNU开源组织发布的.UNIX/LINUX操作系统下的.基于命令行的.功能强大的程序调试工具. GDB中的命令固然很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的程序调 ...