Paramiko--远程服务器操作

1.Paramiko简介
2.SSHClient组件介绍
2.SSHClient组件介绍



1.Paramiko简介
1).可以用来连接远程服务器,然后执行Linux命令、或进行文件上传、下载操作
2).Paramiko有两大核心组件: SSHClient和SFTPClient
3).模块安装: pip install paramiko
2.SSHClient组件介绍
1.SSHClient的作用类似于Linux的ssh命令,是对SSH会话的封装
  该类封装了传输(Transport),通道(Channel)及SFTPClient建立的方法(open_sftp),通常用于执行远程命令
  
2.set_missing_host_key_policy():设置连接的远程主机没有本地主机密钥或HostKeys对象时的策略,目前支持三种:
    1).AutoAddPolicy 自动添加主机名及主机密钥到本地HostKeys对象,不依赖load_system_host_key的配置。即新建立ssh连接时不需要再输入yes或no进行确认
    2).WarningPolicy 用于记录一个未知的主机密钥的python警告。并接受,功能上和AutoAddPolicy类似,但是会提示是新连接
    3).RejectPolicy 自动拒绝未知的主机名和密钥,依赖load_system_host_key的配置。此为默认选项


3.代码如下:
import paramiko
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# hostname 服务器的IP地址; port:SSH端口号,一般是22; 
# username:连接服务器的账号;  password: 连接服务器的密码
client.connect(hostname="xxx", port=22, username="xxx", password="xxx")

# exec_command(): 在远程服务器执行Linux命令的方法
# stdout 为正确输出,stderr为错误输出
stdin, stdout, stderr = client.exec_command('ls')  
# 打印执行结果
print(stdout.read().decode('utf-8'))

# 进行文件上传下载操作
stfp = client.open_sftp()
local_path = r"E:\document\ceshi.txt"
remote_path = "/root/ceshi.txt"

stfp.put( local_path,remote_path) # 上传文件
stfp.get(remote_path, local_path) # 下载文件

# 关闭SSHClient
client.close()
3.SFTPClient组件介绍
1.SFTPClient的作用类似与Linux的sftp命令,是对SFTP客户端的封装,用以实现远程文件操作,如文件上传、下载、修改文件权限等操作

import paramiko 
client = paramiko.Transport(('服务器IP地址', ssh端口号))
client.connect(username='连接服务器的账号', password='连接服务器的密码')
sftp = paramiko.SFTPClient.from_transport(client)
# 设置上传的本地/远程文件路径
localpath = r"E:/document/1.xls"
remotepath = "/home/wws/05_py_files/spider_code/1.xls"

# 执行上传动作
# sftp.put(localpath, remotepath)
# 执行下载动作
sftp.get(remotepath, localpath)
client.close()

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:Paramiko--远程服务器操作

本文作者:伟生

发布时间:2021-08-28, 14:55:25

最后更新:2021-08-28, 19:12:16

原始链接:http://yoursite.com/2021/08/28/basic_10_paramiko/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏