paramiko

1、安裝組件

yum install openssl openssl-devel python-dev   pycrypto -y

yum install zlib-devel zlib   (必須安裝,不安裝會報錯)

安裝zlib-devel需要對python3.5進行重新編譯安裝:

cd /usr/local/src/Python-3.5.1

./configure

make & make install
2、安裝setuptools-19.6:

wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26

tar -zxvf setuptools-19.6.tar.gz

cd setuptools-19.6

python3 setup.py build

python3 setup.py install
3、安裝paramiko
下載:http://pan.baidu.com/s/1dFKYNq5 密碼:y2mltar zxvf paramiko-1.14.0.tar.gz

cd paramiko-1.14.0

python3 setup.py build

sudo python3 setup.py install
4、報這個錯的話:

ImportError: No module named 'cryptography'

安裝cryptography:

pip3 install cryptography
沒有pip3的話在usr/local/Python3.5.1/bin/目錄找

 

 

ssh功能
#ssh功能
import paramiko
#創建ssh對象
ssh=paramiko.SSHClient()

#允許連接不在know_hosts文件中的主機
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

#連接服務器
ssh.connect(hostname='localhost',port=22,username='root',password='123456')

#執行命令
cmd=input("請輸入命令:").strip()
stdin,stdout,stderr=ssh.exec_command(cmd) #stdin標準輸入,輸入命令 stdout標準輸出 stderr輸出錯誤 只能輸出一種

#獲取執行命令結果
result=stdout.read()
err=stderr.read()
print(result.decode())
print(err.decode())
#關閉連接
ssh.close()

 


ftp功能
import paramiko

#建立通道實例
transport=paramiko.Transport(('192.168.0.6',22))
transport.connect(username="root",password='123456')

#創建sftp實例
sftp=paramiko.SFTPClient.from_transport(transport)

#將本地文件location.py傳給服務器test.py
sftp.put('/tmp/location.py','/root/test.py')

#將remove_path下載到本地local_path
sftp.get('/tmp/remove_path','/root/local_path')

transport.close()

 

 

ssh功能基於公鑰
import paramiko

private_key=paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa') ##私鑰路徑

#創建ssh對象
ssh=paramiko.SSHClient()

#允許連接不在know_hosts文件中的主機
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

#連接服務器
ssh.connect(hostname='192.168.0.6',port=22,username='root',pkey=private_key)

#執行命令
cmd=input("請輸入命令:")
stdin,stdout,stderr=ssh.exec_command(cmd) #stdin標準輸入,輸入命令 stdout標準輸出 stderr輸出錯誤 只能輸出一種

#獲取執行命令結果
result=stdout.read()
err=stderr.read()
print(result.decode())
print(err.decode())

#關閉連接
ssh.close()

 

 

ftp基於公鑰
import paramiko

private_key=paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa') #私鑰路徑

#建立通道實例
transport=paramiko.Transport(("192.168.0.6",22))
transport.connect(username="root",pkey=private_key)

#創建sftp實例
sftp=paramiko.SFTPClient.from_transport(transport)

#將本地文件location.py傳給服務器test.py
sftp.put('/tmp/location.py','/root/test.py')

#將remove_path下載到本地local_path
sftp.get('/tmp/remove_path','/root/local_path')

transport.close()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章