paramiko 遠程控制模塊


paramiko   遠程控制模塊python


paramiko是一個用於作遠程控制的模塊,使用該模塊能夠對遠程服務器進行命令或文件操做,fabric和ansible內部的遠程管理就是使用的paramiko來現實。服務器


1.  下載安裝ssh


# pycrypto,因爲 paramiko 模塊內部依賴pycrypto,因此先下載安裝pycryptoide

 

# 下載安裝 pycryptoui

wget http://files.cnblogs.com/files/wupeiqi/pycrypto-2.6.1.tar.gzspa

tar -xvf pycrypto-2.6.1.tar.gzblog

cd pycrypto-2.6.1get

python setup.py buildit

python setup.py installclass

 

# 進入python環境,導入Crypto檢查是否安裝成功

 

# 下載安裝 paramiko

wget http://files.cnblogs.com/files/wupeiqi/paramiko-1.10.1.tar.gz

tar -xvf paramiko-1.10.1.tar.gz

cd paramiko-1.10.1

python setup.py build

python setup.py install

 

# 進入python環境,導入paramiko檢查是否安裝成功


2. 使用模塊

1)執行命令 - 經過用戶名和密碼鏈接服務器

import paramiko

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect('192.168.1.108', 22, '用戶名', '密碼')

stdin, stdout, stderr = ssh.exec_command('df')

print stdout.read()

ssh.close();


2)執行命令 - 過密鑰連接服務器

import paramiko

private_key_path = '/home/auto/.ssh/id_rsa'

key = paramiko.RSAKey.from_private_key_file(private_key_path)


ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect('主機名 ', 端口, '用戶名', key)


stdin, stdout, stderr = ssh.exec_command('df')

print stdout.read()

ssh.close()


3)上傳或者下載文件 - 經過用戶名和密碼

import os,sys

import paramiko


conn = paramiko.Transport(('192.168.20.21',22))

conn.connect(username='用戶名',password='密碼')

sftp = paramiko.SFTPClient.from_transport(conn)

sftp.put('/tmp/test.py','/tmp/test.py') 

conn.close()


import os,sys

import paramiko


conn = paramiko.Transport(('192.168.20.21',22))

conn.connect(username='用戶名',password='密碼')

conn = paramiko.SFTPClient.from_transport(conn)

sftp.get('/tmp/test.py','/tmp/test2.py')

conn.close()



4)上傳或下載文件 - 經過密鑰


import paramiko


pravie_key_path = '/home/auto/.ssh/id_rsa'

key = paramiko.RSAKey.from_private_key_file(pravie_key_path)


conn = paramiko.Transport(('192.168.20.21',22))

conn.connect(username='用戶名',pkey=key)


sftp = paramiko.SFTPClient.from_transport(conn)

sftp.put('/tmp/test3.py','/tmp/test3.py') 


conn.close()


import paramiko


pravie_key_path = '/home/auto/.ssh/id_rsa'

key = paramiko.RSAKey.from_private_key_file(pravie_key_path)


conn = paramiko.Transport(('192.168.20.21',22))

conn.connect(username='用戶名',pkey=key)


sftp = paramiko.SFTPClient.from_transport(conn)

sftp.get('/tmp/test3.py','/tmp/test4.py') 


conn.close()

相關文章
相關標籤/搜索