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

Python基础13 - Paramiko模块学习

时间:2018-01-08 16:38:05      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:编译   命令   exe   int   command   文件下载   ssh   主机   下载到本地   

@@@文章内容参照老男孩教育 Alex金角大王,武Sir银角大王@@@

一、Paramiko模块安装

 系统环境CentOS 7,Python3.6

1、安装Python3.6

2、yum安装openssl-devel

1 [root@localhost ~]# yum install openssl-devel -y 

3、重新编译ssl模块

1 cd Python-3.6.2
2 ./configure --with-ssl
3 make
4 sudo make install

4使用pip安装paramiko模块

1 [root@localhost ~]# python3 -m pip install paramiko

二、SSHClient

用于连接远程服务器并执行基本命令

基于用户名密码连接:

 1 import paramiko
 2 
 3 # 创建SSH对象
 4 ssh = paramiko.SSHClient()
 5 # 允许连接不在know_hosts文件中的主机
 6 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
 7 # 连接服务器
 8 ssh.connect(hostname = ‘10.0.0.10‘, port = 22, username = ‘root‘, password=‘12345‘)
 9 
10 # 执行命令
11 stdin,stdout,stderr = ssh.exec_command(‘df‘)
12 # 获取命令结果
13 result = stdout.read() or stderr.read()
14 print(result.decode())
15 
16 # 关闭连接
17 ssh.close()

基于公钥密钥连接

 1 import paramiko
 2 
 3 private_key = paramiko.RSAKey.from_private_key_file(‘id_rsa_2048‘)
 4 
 5 # 创建SSH对象
 6 ssh = paramiko.SSHClient()
 7 # 允许连接不在know_hosts文件中的主机
 8 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
 9 # 连接服务器
10 ssh.connect(hostname = ‘10.0.0.10‘,port = 22,username = ‘root‘, pkey=private_key)
11 
12 # 执行命令
13 stdin,stdout,stderr = ssh.exec_command(‘df‘)
14 # 获取命令结果
15 result = stdout.read() or stderr.read()
16 print(result.decode())
17 
18 # 关闭连接
19 ssh.close()

三、SFTPClient

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

基于用户名密码上传下载

 1 import paramiko
 2 
 3 transport = paramiko.Transport((‘10.0.0.10‘,22))
 4 transport.connect(username=‘root‘,password=‘12345‘)
 5 
 6 sftp = paramiko.SFTPClient.from_transport(transport)
 7 # 将文件上传至服务器
 8 sftp.put(‘socketserver并发.py‘,‘/tmp/test.py‘)
 9 # 将文件下载到本地
10 sftp.get(‘Python-3.6.2.tar‘,‘Python.tar‘)
11 
12 transport.close()

基于公钥密钥上传下载 

 1 import paramiko
 2 
 3 private_key = paramiko.RSAKey.from_private_key_file(‘id_rsa_2048‘)
 4 
 5 transport = paramiko.Transport((‘10.0.0.10‘,22))
 6 transport.connect(username=‘root‘,pkey=private_key)
 7 
 8 sftp = paramiko.SFTPClient.from_transport(transport)
 9 # 将文件上传至服务器
10 sftp.put(‘socketserver并发.py‘,‘/tmp/test2.py‘)
11 # 将文件下载到本地
12 sftp.get(‘Python-3.6.2.tar‘,‘Python.tar‘)
13 
14 transport.close()

 

Python基础13 - Paramiko模块学习

标签:编译   命令   exe   int   command   文件下载   ssh   主机   下载到本地   

原文地址:https://www.cnblogs.com/auqf8612/p/8227800.html

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