paramiko基本操作

  paramiko 是一个用作远程控制的模块,它遵循SSH2协议,支持以加密和认证的方式来进行远程服务器的连接、操作、上传和下载。

  官方文档地址:http://docs.paramiko.org/

  paramiko基础操作主要有以下几种:执行远程命令,上传、下载文件

  一、执行远程命令:

import paramiko

hostname = '***'
username = 'root'
password = '***'
port = 22

ssh = 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 paramiko

hostname = '***'
username = 'root'
password = '*****'
port = 22

transport = paramiko.Transport((hostname, port))
transport.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(transport)
# 将本地文件传至远程
sftp.put(r'C:UsersAdministratorDesktop1.png','/root/1.png')
# 将远程文件传至本地
sftp.get('/root/a.cpp', r'C:UsersAdministratorDesktopa.cpp')
sftp.close()

  这个上传下载文件有一点类似与队列,放进去是put,取出来是get

想了解更多Python关于爬虫、数据分析的内容,欢迎大家关注我的微信公众号:悟道Python

  

  

  

原文地址:https://www.cnblogs.com/ss-py/p/10229681.html