使用paramiko 模块建立ssh通讯方法步骤详解

    xiaoxiao2021-03-25  172

    本文和大家分享的主要是python开发中,使用paramiko 模块建立ssh通讯的方法步骤,一起来看看吧,希望对大家有所帮助。

       paramiko简介

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

      由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOS

      X, Windows等,paramiko都可以支持,因此,如果需要使用SSH从一个平台连接到另外一个平台,进行一系列的操作时,paramiko是最佳工具之一。

      简单来说, paramiko就是用来建立ssh通讯的。

       安装 paramiko

      一开始我使用linuxmint的软件源安装的,之后的程序出现了传参数错误,事实证明这是个大坑,必须要通过编译的方式安装。

      1paramiko的下载地址是 https://github.com/paramiko/paramiko/releases,下载最新版本

      2、用sudo apt-get –purge remove python-paramiko彻底清除旧版本的paramiko,没安装过旧版的童鞋跳过此步骤

      3、进入解压好的paramiko路径并使用sudo python setup.py install来安装paramiko

       paramiko的使用方法

      client = SSHClient() #创建ssh客户端对象

      client.load_system_host_keys() #从系统文件里加载密钥

      client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #设置没有密钥

      client.connect('ssh.example.com') #连接到指定服务器

      stdin, stdout, stderr = client.exec_command('ls -l') #执行命令

       简单的ssh通讯脚本

      #!/usr/bin/env python

      import paramiko

      import sys,os

      host = sys.argv[1]

      user = 'root'

      password = 'XXXXXX'

      cmd=sys.argv[2]

      s=paramiko.SSHClient()

      s.load_system_host_keys()

      s.set_missing_host_key_policy(paramiko.AutoAddPolicy())

      s.connect(host,22,user,password,timeout=5)

      stdin,stdout,stderr = s.exec_command(cmd)

      cmd_result = stdout.read(),stderr.read()

      for line in cmd_result:

      print line

      s.close()

       执行脚本

      $ python ssh.py 172.18.55.2 df

      Filesystem     1K-blocks      Used Available Use% Mounted on

      udev             1956012         0   1956012   0% /dev

      tmpfs             395484      6612    388872   2% /run

      /dev/sda2       19091584  10027836   8070880  56% /tmpfs            1977412     42968   1934444   3% /dev/shm

      tmpfs               5120         4      5116   1% /run/locktmpfs            1977412         0   1977412   0% /sys/fs/cgroup

      tmpfs             262144     16240    245904   7% /tmp

      /dev/sda1       94371836  46849248  47522588  50% /media/sda1

      /dev/sdb1      976759804 837472068 139287736  86% /media/STORE

      cgmfs                100         0       100   0% /run/cgmanager/fstmpfs             395484        56    395428   1% /run/user/1000tmpfs             395484         4    395480   1% /run/user/0

     

     

    来源:运维部落

    转载请注明原文地址: https://ju.6miu.com/read-7843.html

    最新回复(0)