Python Paramiko实现SSHv2协议轻松管理远程服务器

 更新时间:2024年01月22日 14:14:28   作者:半个码农  
这篇文章主要为大家介绍了Python Paramiko实现SSHv2协议轻松管理远程服务器,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

前言

Python的Paramiko库,它是一个用于实现SSHv2协议的客户端和服务器的库。通过使用Paramiko,我们可以在Python程序中轻松地实现远程服务器的管理、文件传输等功能。特别做智能硬件产品的同学要熟悉它,因为它能为你减少很多麻烦,在我以前的工作中,对智能硬件做各种测试就是通过Paramiko连接设备下发各种命令

一.安装

pip install paramiko

二.基本用法

1.创建一个ssh连接客户端

import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

2.添加服务器的SSH密钥(可选)

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

3.connect()创建连接,连接远程服务,各种智能硬件,服务器等

hostname = '192.168.31.230'
port = 22
username = 'kali'
password = 'kali'
ssh.connect(hostname, port, username, password)

4.执行远程命令

stdin, stdout, stderr = ssh.exec_command('ls')
print(stdout.read().decode()) # 打印输出结果
print(stderrh.read().decode())# 输出错误信息
# 返回结果 
Desktop
Documents
Downloads
Music
Pictures
Public
Templates
Videos

5.文件下载

local_file = 'D:/code/ssh/local_file.txt'  # 本地文件路径和名称
remote_file = '/home/kali/remote_file.txt'  # 远程文件路径和名称
sftp = ssh.open_sftp()  # 打开SFTP会话
sftp.get(remote_file, local_file)  # 从远程服务器下载文件到本地
sftp.close()  # 关闭SFTP会话

6.文件上传

local_file = 'D:/code/ssh/local_file2.txt'  # 本地文件路径和名称
remote_file = '/home/kali/remote_file2.txt'  # 远程文件路径和名称
sftp = ssh.open_sftp()  # 打开SFTP会话
sftp.put(local_file, remote_file)  # 上传本地文件到远程服务器
sftp.close()  # 关闭SFTP会话

7.关闭连接

ssh.close() #关闭连接

三.完整代码如下

import paramiko
ssh = paramiko.SSHClient() # 创建客服端
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 添加秘钥
hostname = '192.168.31.230'
port = 22
username = 'kali'
password = 'kali'
ssh.connect(hostname, port, username, password) # 创建连接
stdin, stdout, stderr = ssh.exec_command('ls') # 执行ls
print(stdout.read().decode())
# 下载
local_file = 'D:/code/ssh/local_file.txt'  # 本地文件路径和名称
remote_file = '/home/kali/remote_file.txt'  # 远程文件路径和名称
sftp = ssh.open_sftp()  # 打开SFTP会话
sftp.get(remote_file, local_file)  # 从远程服务器下载文件到本地
# 上传
local_file2 = 'D:/code/ssh/local_file2.txt'  # 本地文件路径和名称
remote_file2 = '/home/kali/remote_file2.txt'  # 远程文件路径和名称
sftp = ssh.open_sftp()  # 打开SFTP会话
sftp.put(local_file2, remote_file2)  # 上传本地文件到远程服务器
sftp.close()  # 关闭SFTP会话
ssh.close() # 关闭连接

以上就是Python Paramiko实现SSHv2协议轻松管理远程服务器的详细内容,更多关于Python Paramiko SSHv2协议的资料请关注脚本之家其它相关文章!

相关文章

  • 浅谈pytorch grad_fn以及权重梯度不更新的问题

    浅谈pytorch grad_fn以及权重梯度不更新的问题

    今天小编就为大家分享一篇浅谈pytorch grad_fn以及权重梯度不更新的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Python3.x爬虫下载网页图片的实例讲解

    Python3.x爬虫下载网页图片的实例讲解

    今天小编就为大家分享一篇Python3.x爬虫下载网页图片的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Django路由层如何获取正确的url

    Django路由层如何获取正确的url

    本文介绍路由层是如何进行路由匹配的,以diango1.x版本为例,文中通过示例代码介绍的非常详细,文中通过示例代码介绍的非常详细,
    2021-07-07
  • 编写python程序的90条建议

    编写python程序的90条建议

    自己写 Python 也有四五年了,一直是用自己的“强迫症”在维持自己代码的质量。都有去看 Google 的 Python 代码规范,对这几年的工作经验,做个简单的笔记,如果你也在学 Python,准备要学习 Python,希望这篇文章对你有用。
    2021-04-04
  • python Pygal库生成SVG(可缩放矢量图形)图表示例

    python Pygal库生成SVG(可缩放矢量图形)图表示例

    这篇文章主要为大家介绍了python Pygal库生成SVG(可缩放矢量图形)图表示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • python渗透测试linux密码激活的示例

    python渗透测试linux密码激活的示例

    这篇文章主要介绍了python渗透测试linux密码激活的相关知识,通过一个crypt的示例给大家介绍的非常详细,对大家学习python渗透知识有很大的帮助,需要的朋友可以参考下
    2021-05-05
  • 基于Python编写一个win10桌面便签工具

    基于Python编写一个win10桌面便签工具

    Tkinter库提供了丰富的控件和布局管理器,使得开发者可以轻松构建具有窗口、按钮、文本框等元素的应用程序,下面我们就来看看Python如何结合Tkinter编写一个win10桌面便签工具吧
    2026-02-02
  • Python使用pyecharts创建交互式图表的示例代码

    Python使用pyecharts创建交互式图表的示例代码

    本文详细介绍了如何使用Python的策略库创建折线图、柱状图、饼图和散点图,并演示了安装、基础图表制作和配置,适合数据分析师和开发者学习数据可视化技术,需要的朋友可以参考下
    2025-12-12
  • Django中select_related查询优化的具体实现

    Django中select_related查询优化的具体实现

    本文介绍了Django ORM中的N+1查询问题及其解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-12-12
  • python字符串的一些常见实用操作

    python字符串的一些常见实用操作

    字符串是Pyhon常用的数据类型,我们可以用引号来创建字符创(可以是单引号也可以是双引号,当然引号必须是英文的),这篇文章主要给大家介绍了关于python字符串的一些常见实用操作,需要的朋友可以参考下
    2022-04-04

最新评论