Python基础13 - Paramiko模块学习

Posted auqf8612

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础13 - Paramiko模块学习相关的知识,希望对你有一定的参考价值。

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

一、Paramiko模块安装

 系统环境CentOS 7,Python3.6

1、安装Python3.6

2、yum安装openssl-devel

1 [[email protected] ~]# 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 [[email protected] ~]# 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模块学习的主要内容,如果未能解决你的问题,请参考以下文章

Python模块学习 - Paramiko

Python学习记录-paramiko模块

源码安装python paramiko module

Python模块学习 - Paramiko

Python 学习笔记 - Paramiko 模块

python基础 paramiko