当前位置: 首页 > news >正文

OnOn-WebSsh (昂~昂~轻量级WebSSH) 可实现 网页 中的 ssh 客户端操作,支持多用户多线程操作 ssh 持久化

OnOn-WebSsh springBoot 服务器

开源技术栏

OnOn-WebSsh (昂轻量级WebSSH) 可实现 网页 中的 ssh 客户端操作,支持多用户多线程操作

支持指定ssh 连接, 支持sftp 以及 ssh 持久化.

OnOn-WebSSH (OnOn Lightweight WebSSH) enables SSH client operations within a web browser, supporting multi-user and
multithreaded operations. It allows for specified SSH connections and supports SFTP as well as persistent SSH sessions.

目录

文章目录

  • OnOn-WebSsh springBoot 服务器
    • 目录
    • WebSsh
  • 社区 qq 群
    • 关于手动部署
      • 1. 下载 jar 包
      • 2. 启动服务包
    • 关于 docker 部署
      • 1. 使用 docker 部署
      • 2. 使用 docker 镜像部署
        • 下载镜像
      • 访问页面
    • 配置文件完整格式
    • 写在最后
    • 更新日志
      • 2024.12.19 版本发布
      • 2024.12.17 版本发布

官网: 访问官网页面

WebSsh

一个基于Java的WebSSH项目,使用 springBoot 做服务器,基于SSH协议,支持Linux、Windows、Mac等系统。其不需要任何外部依赖,具有非常快速的性能!!!

在这里插入图片描述

我(lingYuZhao)提供了在线使用网站:点击访问 WebSsh 在线

社区 qq 群

大家可以直接从这里进入来咨询作者和交流哦!!

在这里插入图片描述

关于手动部署

手动部署操作将更加的节省性能,其将直接运行在服务器上!不过需要使用 java 17 来运行~

1. 下载 jar 包

如果有 java8 的需求,可以直接在 pom.xml 中为 springBoot 降级!但这会降低一些性能哦!因为 java17 的性能比 java8 更高。

您可以点击这里 下载网站服务包。

2. 启动服务包

直接使用 java -jar WebSSH.jar 进行运行,没有任何外部依赖~~

关于 docker 部署

本章节之前讲解的是使用 SpringBoot jar 包来部署这个服务,事实上,我们也可以使用 docker 来部署这个服务。

1. 使用 docker 部署

docker pull beardedmanzhao/webssh && docker run -d -p 8080:8080 beardedmanzhao/webssh

2. 使用 docker 镜像部署

下载镜像

可以直接前往包管理仓库中下载名为 webssh.iso.tar 的文件,然后使用如下命令即可。

docker import webssh.iso.tar beardedmanzhao/webssh && docker run -d -p 8080:8080 beardedmanzhao/webssh

访问页面

浏览器访问:http://<youServerIP>:8080 可以直接开始输入参数以及使用!

配置文件完整格式

如果您是 docker 环境,您可以在配置文件目录中修改配置,若您是 本地环境,您可以根据下面的操作来创建您的自定义配置文件!

server:port: 8080spring:# 配置 HTTP 多部分文件上传servlet:# 文件上传相关配置 由于浏览器到服务器是 http 因此需要在这里配置multipart:# 指定临时文件的存储位置# 注意:此目录必须存在,并且应用程序应具有写入权限location: /opt/OnOnWebSsh/temp# 指定临时文件的位置(与location配置相同)# 这个配置在较新版本的Spring中可能不是必需的# temp-location: /opt/OnOnWebSsh/temp# 单个文件的最大大小max-file-size: 1024MB# 整个请求中所有文件的总大小的最大值,默认值为多部分数据的最大大小max-request-size: 1030MB# 是否启用文件大小检查,默认为trueenabled: true# 当文件大小超过这个阈值时,才会使用临时文件存储file-size-threshold: 4MBweb:resources:static-locations: classpath:/static/logging:level:root: INFOfile:name: logs/webssh.logpattern:console: '%d{yyyy-MM-dd HH:mm:ss} - %msg%n'file: '%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n'# OnOn WebSSH 配置
on-on-web-ssh:# 文件进度打印相关file-progress-monitor-config:# 文件上传时,每上传多少字节就打印一次进度 这里是 8MBupdate-threshold: 8388608# 安全设置secure-config:# 源IP地址匹配模式src-ip-pattern: "(10(\\.[0-9]{1,3}){3}|172\\.(1[6-9]|2[0-9]|3[0-1])(\\.[0-9]{1,3}){2}|192\\.168(\\.[0-9]{1,3}){2})"# 目标IP地址匹配模式 默认为空,表示不限制# dest-ip-pattern: "(10(\\.[0-9]{1,3}){3}|172\\.(1[6-9]|2[0-9]|3[0-1])(\\.[0-9]{1,3}){2}|192\\.168(\\.[0-9]{1,3}){2})"# 数据持久化设置 这会存储一些 ssh 信息storage-config:# 启用持久化模块 如果不启用 则全程将不会进行ssh数据的记录 (但是全程可以读取哦!) 若启用则代表所有成功连接的 ssh 配置都会被记录!enable-writer: true# 持久化目录storage-dir: storage# 定时设置scheduled:# 设置 ssh 信息存储的时间间隔ssh-storage:interval: 3600000

您可以使用下面的命令来指定配置文件的启动

java -Dspring.config.location=xxx.yaml -jar WebSSH.jar

写在最后

请注意,本库相较于其前身进行了大幅度的重构和改进(其前身代码不足以规范,浪费了大量的nio性能,且时间比较久远),几乎所有的代码都已更新,与其仅仅是前身的关系,不是同一个项目,因此在使用时请留意这些变化。尽管如此,我们依然尽可能地保留了原始库的使用方式,以降低用户的迁移成本和学习曲线。

本库的前身是由 NoCortY/WebSSH GitHub链接
开发的项目。遗憾的是,原作者已多年未对该仓库进行维护。现在,我们将接手继续维护和发展此项目,并致力于传承与改进它,为用户提供更优质的服务和支持。

更新日志

2024.12.19 版本发布

  • 优化了配置文件中一些配置为空的时候的默认值设置,有效避免由于配置为null导致的程序无法启动的问题。
  • 优化了前端提示
  • 支持 ssh 配置的存储

2024.12.17 版本发布

  • 新增文件上传与下载功能
  • 新增安全模块,实现登录鉴权,可按照正则指定源IP和目标IP允许规则,默认规则是允许所有内网设备 ssh 到所有设备!

相关文章:

OnOn-WebSsh (昂~昂~轻量级WebSSH) 可实现 网页 中的 ssh 客户端操作,支持多用户多线程操作 ssh 持久化

OnOn-WebSsh springBoot 服务器 开源技术栏 OnOn-WebSsh (昂昂轻量级WebSSH) 可实现 网页 中的 ssh 客户端操作&#xff0c;支持多用户多线程操作 支持指定ssh 连接, 支持sftp 以及 ssh 持久化. OnOn-WebSSH (OnOn Lightweight WebSSH) enables SSH client operations withi…...

LDP+LBP代码解析及应用场景分析

代码整体结构与功能概述 这段 C 代码主要实现了两个图像特征提取算法&#xff0c;分别是局部方向模式&#xff08;Local Directional Pattern&#xff0c;LDP&#xff09;和多分块局部二值模式&#xff08;Multi-Block Local Binary Pattern&#xff0c;Multi-Block LBP&#…...

51c视觉~合集33

我自己的原文哦~ https://blog.51cto.com/whaosoft/12163849 #Robin3D 3D场景的大语言模型&#xff1a;在鲁棒数据训练下的3DLLM新SOTA! 论文地址&#xff1a;https://arxiv.org/abs/2410.00255代码将开源&#xff1a;https://github.com/WeitaiKang/Robin3D 介绍 多模态…...

element plus的table组件,点击table的数据是,会出现一个黑色边框

在使用 Element Plus 的 Table 组件时&#xff0c;如果你点击表格数据后出现了一个黑色边框&#xff0c;这通常是因为浏览器默认的焦点样式&#xff08;outline&#xff09;被触发了。如图&#xff1a; 你可以通过自定义 CSS 来隐藏这个黑色边框&#xff0c;代码如下&#xff1…...

springmvc的拦截器,全局异常处理和文件上传

拦截器: 拦截不符合规则的&#xff0c;放行符合规则的。 等价于过滤器。 拦截器只拦截controller层API接口。 如何定义拦截器。 定义一个类并实现拦截器接口 public class MyInterceptor implements HandlerInterceptor {public boolean preHandle(HttpServletRequest reque…...

【coredump】笔记

coredump 是什么&#xff1f;最标准的解释是什么&#xff1f; Core dump&#xff08;也称为 core 文件或 core dump 文件&#xff09;是计算机程序在运行时崩溃时生成的文件&#xff0c;它捕获了程序在崩溃时的内存状态。这些文件通常用于调试目的&#xff0c;以帮助开发人员分…...

【Linux】磁盘空间莫名消失,找不到具体原因的思路

磁盘空间莫名消失&#xff0c;找不到具体原因的思路 先说下常见的几种原因&#xff1a; 1、删除的文件未释放空间 2、日志或过期文件未及时清理 3、inode导致 4、隐藏文件夹或者目录 6、磁盘碎片 最后一种单独介绍。 环境&#xff1a;情况是根分区&#xff08;/&#xf…...

智能体实战(需求分析助手)一、需求概述及迭代规划

需求分析助手开发迭代规划 功能概述 需求分析助手是一款基于大模型的智能系统,旨在帮助用户高效完成需求获取、需求分析、需求文档编写及需求验证的全流程工作。通过对用户输入的智能处理和分析,需求分析助手能够简化需求管理流程,并根据不同业务场景提供定制化支持。 核心…...

idea | maven项目标红解决方案 | 强制刷新所有依赖

场景&#xff1a;父pom多模块&#xff0c;新增时&#xff0c;依赖正常&#xff0c;但是application.yml看起来没被springboot识别&#xff0c;试过rebuild、重开idea清除缓存&#xff0c;重新maven面板reload all maven projects, 试过pom文件的依赖先移除再重新粘贴导入进来&a…...

*【每日一题 基础题】 [蓝桥杯 2023 省 B] 飞机降落

题目描述 N 架飞机准备降落到某个只有一条跑道的机场。其中第 i 架飞机在 Ti 时刻到达机场上空&#xff0c;到达时它的剩余油料还可以继续盘旋 Di 个单位时间&#xff0c;即它最早可以于 Ti 时刻开始降落&#xff0c;最晚可以于 Ti Di 时刻开始降落。降落过程需要 Li个单位时间…...

在Windows本地用网页查看编辑服务器上的 jupyter notebook

​ Motivation: jupyter notebook 可以存中间变量&#xff0c;方便我调整代码&#xff0c;但是怎么用服务器的GPU并在网页上查看编辑呢&#xff1f; 参考 https://zhuanlan.zhihu.com/p/440080687 服务端(Ubuntu)&#xff1a; 激活环境 source activate my_env安装notebook …...

OpenCV圆形标定板检测算法findGrid原理详解

OpenCV的findGrid函数检测圆形标定板的流程如下: class CirclesGridClusterFinder {CirclesGridClusterFinder(const CirclesGridClusterFinder&); public:CirclesGridClusterFinder...

自动图像标注可体验

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…...

武汉市电子信息与通信工程职称公示了

2024年武汉市电子信息与通信工程专业职称公示了&#xff0c;本次公示通过人员有109人。 基本这已经是今年武汉市工程相关职称最后公示了&#xff0c;等待出证即可。 为什么有人好奇&#xff0c;一样的资料&#xff0c;都是业绩、论文等&#xff0c;有的人可以过&#xff0c;有的…...

Ansible基本用法

Ansible 1 Ansible概念 Ansible是一个基于Python开发的配置管理和应用部署工具&#xff0c;现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点&#xff0c;Pubbet和Saltstack能实现的功能&#xff0c;Ansible基本上都可以实现。 Ansible能批量配置、部署、管理…...

MFC 应用程序语言切换

在开发多语言支持的 MFC 应用程序时&#xff0c;如何实现动态语言切换是一个常见的问题。在本文中&#xff0c;我们将介绍两种实现语言切换的方式&#xff0c;并讨论其优缺点。同时&#xff0c;我们还会介绍如何通过保存配置文件来记住用户的语言选择&#xff0c;以及如何在程序…...

Swift 的动态性

Swift 的动态性指的是 Swift 编程语言支持运行时操作的一些特性&#xff0c;使得代码的行为能够在运行时作出一定的调整或决策。这些特性通常可以让程序在运行时动态地添加、删除或修改对象的属性、方法等&#xff0c;而不是在编译时完全确定。 Swift 的动态性主要体现在以下几…...

用.Net Core框架创建一个Web API接口服务器

我们选择一个Web Api类型的项目创建一个解决方案为解决方案取一个名称我们这里选择的是。Net 8.0框架 注意&#xff0c;需要勾选的项。 我们找到appsetting.json配置文件 appsettings.json配置文件内容如下 {"Logging": {"LogLevel": {"Default&quo…...

lua dofile 传参数

cat 1.lua arg[1] 111 arg[2] 222 dofile(./2.lua) cat 2.lua print("First argument is: " .. arg[1]) print("Second argument is: " .. arg[2]) 执行 lua 1.lua&#xff0c;结果为&#xff1a; First argument is: 111 Second argument is: 222 l…...

HTML 有效 DOCTYPES

HTML 有效 DOCTYPES 介绍 HTML文档类型定义&#xff08;DOCTYPE&#xff09;是HTML文档中的一个声明&#xff0c;它告诉浏览器该文档使用的HTML版本。这有助于浏览器正确地解析和渲染页面。本文将探讨各种有效的HTML DOCTYPE声明&#xff0c;并解释它们的作用。 HTML5 DOCTY…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

​​企业大模型服务合规指南:深度解析备案与登记制度​​

伴随AI技术的爆炸式发展&#xff0c;尤其是大模型&#xff08;LLM&#xff09;在各行各业的深度应用和整合&#xff0c;企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者&#xff0c;还是积极拥抱AI转型的传统企业&#xff0c;在面向公众…...