Python Paramiko模塊的安裝與使用詳解php
paramiko是短連接,不是持續連接,只能執行你設定的shell命令,能夠加分號執行兩次命令。python
http://www.111cn.net/phper/python/67973.htmshell
安裝過程排錯解決方案ubuntu
http://blog.csdn.net/wang1144/article/details/42277179centos
1、python模擬ssh密碼登陸ssh
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import paramiko
import sys,os
host = '10.74.85.167'
user = 'liqian'
password = '123456'
cmd = 'ls -l'
#綁定實例
s = paramiko.SSHClient()ui
#加載本機.ssh/knows_hosts文件
s.load_system_host_keys()spa
#第一次登錄機器須要輸入yes,添加完以後就不用輸入
s.set_missing_host_key_policy(paramiko.AutoAddPolicy()).net
#登陸遠程主機htm
s.connect(host,22,user,password,timeout=5)
#遠程執行命令
stdin,stdout,stderr = s.exec_command(cmd)
#錯誤輸出和正確輸出,二者只有一個輸出,要麼是正確輸出,要麼是錯誤輸出
cmd_result = stdout.read(),stderr.read()
#輸出的結果逐行打印
for line in cmd_result:
print line
s.close()
2、python模擬ssh免密碼登陸
須要將.ssh/id_rsa.pub 拷貝到對方機器.ssh/authorized_keys中,使用私鑰
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import paramiko
import sys,os
pkey_file = '/root/.ssh/id_rsa'
key = paramiko.RSAKey.from_private_key_file(pkey_file)
host = '10.74.85.167'
user = 'root'
cmd = 'ls -l'
#綁定實例
s = paramiko.SSHClient()
#加載本機.ssh/knows_hosts文件
s.load_system_host_keys()
#第一次登錄機器須要輸入yes,添加完以後就不用輸入
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
s.connect(host,22,user,pkey=key,timeout=5)
stdin,stdout,stderr = s.exec_command(cmd)
cmd_result = stdout.read(),stderr.read()
for line in cmd_result:
print line
s.close()
3、paramiko實現sftp上傳下載文件
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import paramiko
import sys,os
host = '10.74.85.167'
user = 'root'
password = '123456'
t = paramiko.Transport((host,22))
t.connect(username=user,password=password)
sftp = paramiko.SFTPClient.from_transport(t)#sftp.get('/pythonShare/ssh.py','ssh.py.bak') #下載sftp.put('ssh.py.bak','/tmp/ssh.py') #上傳t.close()