admin 管理员组文章数量: 1086019
python 模块paramiko
一、基础学习
ssh远程连接服务器
知识储备:python基本常识/注释 以及模块
此处使用的版本为python3
- ssh需要库的名称以及功能,此处需要paramiko库,检查python中是否存在该函数库pip list查询:paramiko 2.8.1
- 了解该模块的功能及作用
- 编写代码
二、功能介绍
paramiko模块:
远程控制模块,主要用来实现远程命令执行,文件传输,ssh代理功能
paramiko核心类:SSHClinet 和 SFTPClient
三、功能分析
- 远程控制功能
#linux下执行shell命令
ssh username@host_ip x.x.x.x #输入需要登陆的主机ip地址对设备进行操作
ssh username@host_ip command :password #需要输入主机密码进入设备
2、调用paramiko库实现ssh
import paramikossh paramiko.SSHClient() #建立一个sshclient对象
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #允许连接不在know_hosts文件中的主机
ssh.connect(hostname='host_ip', port=22, username='xx', password='xx')#连接服务器
stdin, stdout, stderr = ssh.exec_command('pwd')#执行命令并获取命令结果
#stdin为输入的命令
#stdout为命令返回的结果
#stderr为命令错误时返回的结果
resout,error = stdout.read(),stderr.read() #赋值两种输出的结果
result = resout if resout else error #if语句,要么out要么err
print(result) #输出结果
运行结果报错如下 python3 ssh.py
b'/root\n'
Exception ignored in: <function BufferedFile.__del__ at 0x7fda39b65550>
Traceback (most recent call last):File "/usr/local/lib/python3.8/dist-packages/paramiko/file.py", line 66, in __del__File "/usr/local/lib/python3.8/dist-packages/paramiko/channel.py", line 1392, in closeFile "/usr/local/lib/python3.8/dist-packages/paramiko/channel.py", line 991, in shutdown_writeFile "/usr/local/lib/python3.8/dist-packages/paramiko/channel.py", line 967, in shutdownFile "/usr/local/lib/python3.8/dist-packages/paramiko/transport.py", line 1846, in _send_user_message
AttributeError: 'NoneType' object has no attribute 'time'
发现是因为ssh时间连接太短,而未考虑连接时间等待,故添加另一个库函数 time
# -*- coding: utf-8 -*-
"""
@auther:passby
@contact: 1690194769@qq.com
@file: ssh_py
@time: 2021/12/10 15:29
@desc:
# 测试过程中,比较常用的操作就是将DUT(待测物)接入网络中,然后远程操控对DUT,
# 使用SSH远程登陆到主机,然后执行相应的command即可
# python 代码如下:
# paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接
# 首先第一步我们需要安装paramiko这个包
# 安装命令:pip install paramiko
# 导入paramiko包
"""
import time
import paramikossh = paramiko.SSHClient() #建立一个sshclient对象
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #允许连接不在know_hosts文件中的主机
ssh.connect(hostname='10.11.22.235', port=22, username='root', password='root')#连接服务器
stdin, stdout, stderr = ssh.exec_command('pwd')#执行命令并获取命令结果
#stdin为输入的命令
#stdout为命令返回的结果
#stderr为命令错误时返回的结果
resout,error = stdout.read(),stderr.read()
result = resout if resout else error
print(result)time.sleep(5)#推迟调用线程的运行5s
ssh.close()#关闭链接
查阅资料链接
.html
本文标签: python 模块paramiko
版权声明:本文标题:python 模块paramiko 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1686732476a30575.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论