正文
paramiko基本操作
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
paramiko 是一个用作远程控制的模块,它遵循SSH2协议,支持以加密和认证的方式来进行远程服务器的连接、操作、上传和下载。
官方文档地址:http://docs.paramiko.org/
paramiko基础操作主要有以下几种:执行远程命令,上传、下载文件
一、执行远程命令:
import paramikohostname = '***'
username = 'root'
password = '***'
port = 22ssh = paramiko.SSHClient() # 创建SSH对象
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 允许连接不在 know_hosts文件中的主机
ssh.connect(hostname=hostname, username=username, password=password, port=port) # 连接远程服务器
stdin, stdout, stderr = ssh.exec_command('ls') #执行远程命令,返回:标准输入、标准输出、标准错误(输出和错误只会返回一种)
print(stdout.read().decode())
ssh.close() # 关闭连接
输出结果:
这是root用户下目录:
这段代码其他地方都很好理解,只有一句话需要注意:
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
这个代码指的是将目标主机的信息添加至know_hosts文件中,
know_hosts文件在当前用户下的 .ssh文件夹下,是一个隐藏文件,当你第一次使用ssh 用户+@+ip的方式远程登录另一台机器时,系统也会提示你是否将目标机器的信息添加至know_hosts文件中。
但是我们在使用paramiko进行远程连接是,如果没有上边那一行代码,代码就会报错:
二、上传下载文件
import paramikohostname = '***'
username = 'root'
password = '*****'
port = 22transport = paramiko.Transport((hostname, port))
transport.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(transport)
# 将本地文件传至远程
sftp.put(r'C:\Users\Administrator\Desktop\1.png','/root/1.png')
# 将远程文件传至本地
sftp.get('/root/a.cpp', r'C:\Users\Administrator\Desktop\a.cpp')
sftp.close()
这个上传下载文件有一点类似与队列,放进去是put,取出来是get
想了解更多Python关于爬虫、数据分析的内容,欢迎大家关注我的微信公众号:悟道Python