python使用paramiko 模塊建立ssh通訊

一 paramiko簡介

下文是我從別人博客那里copy下來的:

paramiko是用python語言寫的一個模塊,遵循SSH2協議,支持以加密和認證的方式,進行遠程服務器的連接。

由于使用的是python這樣的能夠跨平臺運行的語言,所以所有python支持的平臺,如Linux, Solaris, BSD, MacOS
X, Windows等,paramiko都可以支持,因此,如果需要使用SSH從一個平臺連接到另外一個平臺,進行一系列的操作時,paramiko是最佳工具之一。

簡單來說,paramiko就是用來建立ssh通訊的。

二 安裝paramiko

一開始我使用linuxmint的軟件源安裝的,之后的程序出現了傳參數錯誤,事實證明這是個大坑,必須要通過編譯的方式安裝。

1、paramiko的下載地址是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/lock
tmpfs            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/fs
tmpfs             395484        56    395428   1% /run/user/1000
tmpfs             395484         4    395480   1% /run/user/0


原創文章,作者:realmaster,如若轉載,請注明出處:http://www.www58058.com/70658

(0)
realmasterrealmaster
上一篇 2017-03-06 23:20
下一篇 2017-03-07 11:08

相關推薦

  • 馬哥教育網絡班第19期+第8周課程練習

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 網橋:一種網路裝置,負責網路橋接,將網絡的多個網段在數據鏈路層連接起來。 集線器:將多條以太網線或光纖集合連接在同一段物理介質下的裝置。工作在物理層。 二層交換機:工作在數據鏈路層,交換機內部的CPU會在每個端口成功連接時,通過將MAC地址和端口對應,形成一張MAC表。在今后的通…

    Linux干貨 2016-08-22
  • LINUX–命令的格式、類型、別名的概述及運用

    命令格式       COMMAND [OPTIONS…] [ARGUMENTS..]      [OPTIONS..] 選項:用于啟用或關閉命令的某個或某些功能                &n…

    2017-05-21
  • vim文件編輯器

       vi命令是UNIX操作系統和類UNIX操作系統中最通用的全屏幕純文本編輯器。Linux中的vi編輯器叫vim,它是vi的增強版(vi Improved),與vi編輯器完全兼容,而且實現了很多增強功能。 vim功能十分強大,具有很多有優點: 所有的unix like系統都會內置vi文本編輯器,其他的文本編輯器則不一定會有 很多軟件的編…

    Linux干貨 2016-08-11
  • Linux 登錄趣事

    初入Linux運維,在虛擬機VMware12中裝載CentOS6和CentOS7,均帶有圖形化界面。簡單熟悉Linux,發現了一些關于登錄的趣事,在此與大家分享。 運行環境:CentOS6和CentOS7 工具:系統里的terminal 登錄趣事(以CentOS6為例): (1)自動登錄圖形化界面 每次啟動CentOS6,短暫等待之后便會進入登錄界面,然后選…

    2017-07-15
  • Linux基礎小模塊

    1.基礎知識小塊:shell 由shell程序的自帶命令:即為內置命令(builtin) 獨立的可執行程序文件、文件名 :即為外部命令  [root@localhost~]#ls      ~用戶當前所在目錄  #:命令提示符(管理員帳號root)  $:普通用戶   &nbsp…

    Linux干貨 2016-08-10
  • crm命令行命令詳解

    crm -status 顯示當前集群狀態 -configure 配置集群 a.show xml 顯示當前集群配置信息(xml格式) b.property 顯示集群可用的全局屬性(鍵入之后按兩下Tab) -verifiy 校驗 -commit 提交 -node a.online 設置當前節點上線 b.show 顯示當前節點狀態 c.standby 將當前節點設…

    Linux干貨 2017-11-04
欧美性久久久久