一、前言
常見的解決方法都會需要對遠端伺服器必要的配置,如果遠端伺服器只有一兩台還好說,如果有n臺,還需要逐台進行配置,或者需要使用**進行以上操作時,上面的辦法就不太方便了。而使用paramiko可以很好的解決以上問題,比起前面的方法,它僅需要在本地上安裝相應的軟體(python以及pycrypto),對遠端伺服器沒有配置要求,對於連線多台伺服器,進行複雜的連線操作特別有幫助。下面本文就來詳細的介紹python paramiko模組的安裝與使用,一起學習學習吧。、
二、安裝
安裝paramiko有兩個先決條件,python和另外乙個名為pycrypto的模組。
通常安裝標準的pyt程式設計客棧hon模組,只需要在模組的根目錄下執行:
python setup.py build
python setup.py install
備註:安裝前先檢查是否安裝gcc(yum -y install gcc)
2.1 pycrypto安裝
wget
tar -zxvf pycrypto-2.6.tar.gz
cd pycrypto-2.6/
python setup.py build && python setup.py install
測試:python>> import crypto
(編譯時報錯:error: command 'gcc' failed with exit status 1;這是因為缺少python-dev的軟體包,所yum -y install python-devel)
2.2 paramiko安裝
wget
tar xvzf paramiko-1.7.7.1.tar.gz
cd paramiko-1.7.7.1/
python setup.py build && python setup.py install
crypto error: 'module' object has no attribute 'h**e_decl_mpz_powm_sec'
測試:python>> import paramiko
(crypto error: 'module' object has no attribute 'h**e_decl_mpz_powm_sec'
找到 /usr/lib/python2.7/site-packages/crypto/util/number.py
把if _fastmath is not none and not _fastmath.h**e_decl_mpz_powm_sec:
注釋了#if _fastmath is not none and not _fastmath.h**e_decl_mpz_powm_sec:
三、使用
3.1 執行遠端命令
#!/usr/bin/python
impo paramiko
ssh = paramiko.sshclient()
ssh.set_missing_host_key_policy(paramiko.autoaddpolicy())
ssh.connect("某ip位址",22,"使用者名稱", "口令")
stdin, stdout, stderr = ssh.exec_command("你的命令")
print stdout.readlines()
ssh.close()
3.2 上傳檔案到遠端
#!/usr/bin/python
import paramiko
t = paramiko.transport(("某ip位址",22))
t.connect(username = "使用者名稱", password = "口令")
sftp = paramiko.sftpclien程式設計客棧t.from_transport(t)
remotepath='/tmp/test.txt'
localpath='/tmp/test.txt'
sftp.put(localpath,remotepath)
t.close()
3.3 從遠端**檔案
#!/usr/bin/python
import paramiko
t = paramiko.transport(("某ip位址",22))
t.conivuimwnect(username = "使用者名稱", password = 程式設計客棧"口令")
sftp = paramiko.sftpclient.from_transport(t)
remotepath='/tmp/test.txt'
localpath='/tmp/test.txt'
sftp.get(remotepath, localpath)
t.close()
總結本文標題: python paramiko模組的安裝與使用詳解
本文位址:
python paramiko 各種錯誤
這個錯誤出現在伺服器接受連線但是ssh守護程序沒有及時響應的情況 預設是15s 要解決這個問題,需要將paramiko的響應等待時間調長。transport.py中def init 初始化函式中 how long seconds to wait for the ssh banner self.ban...
Python Paramiko模組的使用
windows下有很多非常好的ssh客戶端,比如putty。在python的世界裡,你可以使用原始套接字和一些加密函式建立自己的ssh客戶端或服務端,但如果有現成的模組,為什麼還要自己實現呢。使用paramiko庫中的pycrypto能夠讓你輕鬆使用ssh2協議。paramiko的安裝方法網上有很多...
Python paramiko實現跳轉控制
通過ssh 的proxycommand,建立關係,用paramiko模組,呼叫proxycommand方法 一 通過一台跳板機免密 a主機 b跳板機 c主機 做好a免密登入b,b免密登入c a主機 ssh下新增檔案b private,內容為b的私鑰 a主機 ssh下增加config檔案,內容為 ho...