python3.5-ssh免輸入密碼過程

 

 ssh遠程批量執行命令要輸密碼很蛋疼,雖然有不少種方式,大概有四、5種。原理基本相似。 這裏我就講一個python的模擬登錄 模塊python

 

此刻的時間是:2015年11月19日11:11:47         基本上全部都官網最新的,除了centos - -! 。下面連接也爲此刻官網最新的安裝包。我是雷鋒bootstrap

環境:centos 6.6centos

python:3.5  wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgzssh

paramiko:1.7.7.1   wget http://www.lag.net/paramiko/download/paramiko-1.7.7.1.tar.gz測試

pip:7.1.2    wget https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gzui

setuptools :  wget https://bootstrap.pypa.io/ez_setup.py -O - | pythonthis

pycrypto2.6  https://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/pycrypto-2.6.1.tar.gzspa

 

1、安裝paramiko模塊.net

 

python模擬登錄須要安裝paramiko模塊,而paramiko模塊又依賴於pycrypto2.6 這個裏面有版本限制,就是不能過低版本,這裏咱們能夠經過paramiko的setup.py的安裝文件來看語句3d

下面還有這個模塊所支持的python 版本,果真支持最新的3.5

 

廢話那麼多,開始安裝吧。

首先安裝openssl 和openssl-devel 由於這2個安裝包要在安裝python3.5以前安裝,否則之後安裝pip就會報這樣的錯誤

若是出現這樣的報錯,就先安裝上面的2個包,而後在刪掉python的安裝目錄,從新安裝python便可。

openssl用yum 安裝就好。yum默認用的是python2.6的解釋環境,將系統默認的python改爲3以後記得要去改yum的解釋環境哦。python3.5的安裝這裏就不BB了。

yum -y install openssl openssl-devel

而後在安裝python3.5 並將python3.5改成python默認解釋。

編譯時報錯:error: command 'gcc' failed with exit status 1;這是由於缺乏python-dev的軟件包,所yum -y install python-devel

ln -s /usr/local/bin/python3 /usr/bin/python

 

安裝pip以前先安裝一個依賴模塊setuptools :  

wget https://bootstrap.pypa.io/ez_setup.py -O - | python

安裝pip

tar zxf pip-7.1.2.tar.gz

cd pip-7.1.2

python setup.py build && python setup.py install

 

接下來安裝paramiko的依賴模塊pycrypto2.6

tar zxf pycrypto2.6.tar.gz

cd pycrypto2.6

python setup.py build && python setup.py install

 

而後在安裝paramiko-1.7.7

tar zxf paramiko-1.7.7.tar.gz

cd paramiko-1.7.7

python setup.py build && python setup.py install

而後咱們在python 裏面來測試一下模塊是否安裝好了。

若是其餘系統有報錯,提示上面模塊沒安裝用pip install 安裝便可。至此模塊安裝完畢。

 

2、功能實現

#/usr/bin/python
#++++++++++++++++++++++++++this version python3.5+++++++++++++++++++syw
import paramiko
ipadd = str(input("Enter your ipaddr:"))
cmd = str(input("Enter your command:"))
port = 22
name = "root"
pwd = "yingzi"
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ipadd,port,name,pwd)
stdin,stdout,stderr = ssh.exec_command(cmd)
print (stdout.readlines(),end='')
ssh.close()

 

其中stdout 返回命令的結果,格式很亂。我也不知道什麼緣由。但願知道的大神給小弟點撥點撥。  謝謝

相關文章
相關標籤/搜索