码迷,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
迷上了代码!