python學習-paramiko簡單使用

來源:互聯網
上載者:User

標籤:paramiko簡單使用

    paramiko是基於python實現的ssh2遠程安全連線,支援認證及密鑰方式。可以實現遠程命令執行,檔案傳輸、中間ssh代理等功能。

安裝:

pip install paramiko或 easy_install paramiko

paramiko依賴第三方的Crypto,Ecdsa和pyhton-devel

核心組件:SSHclient類
方法:

connect():遠程ssh串連並作校正

參數:

  • hostname 串連的目標主機

  • port=SSH_PORT 指定連接埠

  • username=None 驗證的使用者名稱

  • password=None 驗證的使用者密碼

  • pkey=None 私密金鑰方式用於身分識別驗證

  • key_filename=None 一個檔案名稱或檔案名稱列表,指定私密金鑰檔案

  • timeout=None 可選的tcp連線逾時時間

  • allow_agent=True 是否允許串連到ssh代理,預設為True 允許

  • look_for_keys=True 是否在~/.ssh中搜尋私密金鑰檔案,預設為True 允許

  • compress=False 是否開啟壓縮

  • sock=None

  • gss_auth=False

  • gss_kex=False

  • gss_deleg_creds=True

  • gss_host=None

  • banner_timeout=None

 

exec_command():用於遠程執行命令,該命令的輸入與輸出資料流為標準輸入、標出輸出、標準錯誤輸出

參數:

  • command 執行的命令

  • bufsize=-1 檔案緩衝區大小

  • timeout=None 設定逾時時間

  • get_pty=False

 

load_system_host_key():裝載系統公開金鑰,預設為~/.ssh/known_hosts

參數:

  • filename=None 指定本地公開金鑰檔案

 

set_missing_host_key_policy():設定串連的遠程主機沒有本地主機密鑰或HostKeys對象時的策略,目前支援三種,也就是參數只有三個。

參數:

  • AutoAddPolicy 自動添加主機名稱及主機密鑰到本地的known_hosts,不依賴load_system_host_key的配置。即建立立ssh串連時不需要再輸入yes或no進行確認

  • WarningPolicy 用於記錄一個未知的主機密鑰的python警告。並接受,功能上和AutoAddPolicy類似,但是會提示是新串連

  • RejectPolicy 自動拒絕未知的主機名稱和密鑰,依賴load_system_host_key的配置。此為預設選項

  用法:
  set_missing_host_key_policy(paramiko.AutoAddPolicy())

SFTPClient類

SFTPCLient作為一個sftp的用戶端對象,根據ssh傳輸協議的sftp會話,實現遠程檔案操作,如上傳、下載。

方法:

  • from_transport(cls,t) 建立一個已連通的SFTP用戶端通道

  • put(localpath, remotepath, callback=None, confirm=True) 將本地檔案上傳到伺服器 參數confirm:是否調用stat()方法檢查檔案狀態,返回ls -l的結果

  • get(remotepath, localpath, callback=None) 從伺服器下載檔案到本地

  • mkdir() 在伺服器上建立目錄

  • remove() 在伺服器上刪除目錄

  • rename() 在伺服器上重新命名目錄

  • stat() 查看伺服器檔案狀態

  • listdir() 列出伺服器目錄下的檔案


使用ssh運行命令,採用純文字密碼認證方式,通過exec_command()方法執行命令,樣本如下

#!/usr/bin/env python#coding=utf-8 import paramiko   hostname='172.31.101.61' username='root' password='[email protected]' paramiko.util.log_to_file('syslogin.log') #發送paramik日誌到syslogin.log檔案  ssh=paramiko.SSHClient()   #建立一個ssh用戶端client對象 ssh.load_system_host_keys()   #擷取用戶端host_keys,預設~/.ssh/known_hosts,非預設路徑需指定 ssh.connect(hostname=hostname,username=username,password=password)  #建立ssh串連 stdin,stdout,stderr=ssh.exec_command('free -m')   #調用遠程執行命令方法exec_command() print stdout.read()    #列印命令執行結果,得到python列表形式,可以用stdout.readlinses() ssh.close()    #關閉ssh串連

python學習-paramiko簡單使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.