码迷,mamicode.com
首页 > 编程语言 > 详细

python基础(九)

时间:2016-09-21 01:47:24      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:

一、paramiko模块

1.1 简介

      paramiko是一个自由和开放源码模块使用,实现SSH2协议安全(认证和加密)连接到远程计算机,使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,fabric和ansible内部的远程管理就是使用的paramiko来现实。

1.2 paramiko简单使用

1)SSHClient:

基于用户名和密码进行连接

import paramiko
#创建ssh对象
ssh = paramiko.SSHClient()
#允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接服务器
ssh.connect(hostname=192.168.1.108,port=22,username=root,password=123456)
#执行命令
stdin,stdout,stderr = ssh.exec_command(df -h)
#获取命令结果
result = stdout.read().decode()
#打印结果
print(result)
#关闭连接
ssh.close()

显示结果:
文件系统       容量  已用  可用 已用%% 挂载点
/dev/sda3              18G   13G  4.3G  75% /
tmpfs                 495M  4.0K  495M   1% /dev/shm
/dev/sda1             190M   48M  133M  27% /boot

 

SSHClient封装Transport:

import paramiko
transport = paramiko.Transport((192.168.1.108,22))
transport.connect(username=root,password=123456)
ssh = paramiko.SSHClient()
ssh._transport = transport
stdin,stdout,stderr = ssh.exec_command(free -m)
print(stdout.read().decode())
transport.close()

结果显示:
             total       used       free     shared    buffers     cached
Mem:           988        437        551          0         52         77
-/+ buffers/cache:        307        681
Swap:         2047          0       2047

 

基于公钥密钥连接:

import paramiko
private_key = paramiko.RSAKey.from_private_key_file(C:\id_rsa)
#创建ssh对象
ssh = paramiko.SSHClient()
#允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接服务器
ssh.connect(hostname=192.168.1.108,port=22,username=root,pkey=private_key)
#执行命令
stdin,stdout,stderr = ssh.exec_command(df -h)
#获取命令结果
result = stdout.read().decode()
print(result)
#关闭连接
ssh.close()

显示结果:
文件系统       容量  已用  可用 已用%% 挂载点
/dev/sda3              18G   13G  4.3G  75% /
tmpfs                 495M  4.0K  495M   1% /dev/shm
/dev/sda1             190M   48M  133M  27% /boot

SSHClient封装transport:

import  paramiko
private_key = paramiko.RSAKey.from_private_key_file(C:\id_rsa)
transport = paramiko.Transport((192.168.1.108,22))
transport.connect(username=root,pkey=private_key)
ssh = paramiko.SSHClient()
ssh._transport = transport
stdin,stdout,stderr = ssh.exec_command(df -h)
print(stdout.read().decode())
transport.close()


2) SFTPClient

用于连接远程服务器并执行上传下载

import paramiko
transport = paramiko.Transport((192.168.1.108,22))
transport.connect(username=root,password=123456)
sftp = paramiko.SFTPClient.from_transport(transport)
#本地的id_rsa文件上传至服务器/tmp/下面
sftp.put(C:\id_rsa,/tmp/id_rsa)
#将/tmp下面的nihao下载到本地的C:目录下
sftp.get(/tmp/nihao,C:\\nihao)
transport.close()

基于公钥密钥上传下载

import  paramiko
private_key = paramiko.RSAKey.from_private_key_file(C:\id_rsa)
transport = paramiko.Transport((192.168.1.108,22))
transport.connect(username=root,pkey=private_key)
sftp = paramiko.SFTPClient.from_transport(transport)
#本地的id_rsa文件上传至服务器/tmp/下面
sftp.put(C:\id_rsa,/tmp/id_rsa)
#将/tmp下面的nihao下载到本地的C:目录下
sftp.get(/tmp/nihao,C:\\nihao)
transport.close()

 

python基础(九)

标签:

原文地址:http://www.cnblogs.com/chaishao/p/5891141.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!