python paramiko模擬ssh登陸,實現sftp上傳或者下載文件

Python Paramiko模塊的安裝與使用詳解php

paramiko是短連接,不是持續連接,只能執行你設定的shell命令,能夠加分號執行兩次命令。python

http://www.111cn.net/phper/python/67973.htmshell

tar -zxvf pycrypto-2.6.tar.gz
cd pycrypto-2.6/
 
python setup.py build
python setup.py install
進入python
import Crypto 看是否有報錯
 
centos安裝
yum install -y python-devel
ubuntu安裝
apt-get install -y python-paramiko
而後能夠進入python
import paramiko看是否有報錯

安裝過程排錯解決方案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()

相關文章
相關標籤/搜索