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" 转载请保留原文链接及作者。