堡垒机Linux黑屏识别命令Set -n探索可能性

问题

自己根据流拼接命令 ,比如向前向后,<-- --> backspace 这几个按钮符号 如果有变化则代码中不能写死,需要根据配置动态设置。

Xterm 黑屏通过 Websocket 发送数据流给SSH客户端。

数据流如下图:

命令识别 方案参考:揭秘黑屏操作特性,以及不同命令识别方案的比对-CSDN博客

自己根据数据流进行识别,需要根据黑屏的交互维护后端的命令buffer,比如:ls backspace l 结果就是ls,还有:home,end,鼠标向前 向后,以及一些快捷键,并这些快捷键都可以被修改。

常用快捷键,以及快捷键配置inputrc文件,stty命令。详细参考:Linux 黑屏操作快捷键,已经配置修改inputrc stty-CSDN博客

解决方案

方案描述

  1. 自己在代码中拼接命令

  2. 将数据流发送给bash shell,因为最好的命令识别主体是bash,而非自己识别,否则有一致性问题

set -n 不执行

set -n 的作用是解释命令但不执行。 局限于脚本,bash shell交互黑屏set -n是没有效果的,原因:交互shell如果能设置成功,就没法退出交互页面了。

那么启动bash的时候设置-n,这样整个黑屏就没法执行命令。命令:bash -n,输出如下,因为启动bash会获取profile文件PS1环境变量,因为是-n参数没法读取PS1导致输出:bash-4.4 #

PS1='>> ' /bin/bash -n

这个bash-4.4 字符串可能不确定,如果能在启动时设置PS1就不会变了。

bash 复制代码
PS1='>> ' /bin/bash -n

设置SSH用户默认bash

bash 复制代码
[root@iZ2ze6n5mtnyh6st0dxrvqZ ~]# cat /etc/passwd
testuser:x:1001:1002::/home/testuser:/opt/shell/custom_shell.sh

custom_shell.sh文件:

bash 复制代码
[root@iZ2ze6n5mtnyh6st0dxrvqZ shell]# cat custom_shell.sh 
#!/bin/sh

echo "========================================="
echo "Connected: $(date)"
echo "User: $(whoami)"
echo "From: $(echo $SSH_CLIENT | awk '{print $1}')"
echo "========================================="
echo ""
echo "enter terminal..."


/bin/bash -nx
[root@iZ2ze6n5mtnyh6st0dxrvqZ shell]#

用户testuser登录ssh默认执行opt/shell/custom_shell.sh

方案不足

vim 11.txt 文件的数据流不是命令,是不可以发给bash去识别的。需要进行根据 识别码 判断是否为vim文本编辑模式。

相关推荐
阳光九叶草LXGZXJ2 小时前
达梦数据库-报错-15-列【XXX】长度超出定义
linux·运维·数据库·sql·学习
奔跑的大白啊2 小时前
多容器共享目录权限踩坑记
linux·ubuntu·共享目录·linux权限·docker 容器化部署
黄大刀3 小时前
DataPulse一款开箱即用的SCADA(四)-历史记录
运维·scada·动环
正在走向自律4 小时前
AI数据分析与可视化:从基础到应用实践
服务器·人工智能·python·机器学习·数据分析·pandas
OnlineProxy4 小时前
亚马逊多账号运营:如何在规避“关联封号”风险的同时实现电商规模化扩张
服务器·数据库·redis
归秋1425 小时前
2026 企业 AI 办公工具选型指南:从评估框架到产品适配
大数据·运维·人工智能
Android系统攻城狮5 小时前
Linux Gstreamer深度解析之gst_audio_encoder_set_frame_max调用流程与实战(六十一)
android·linux·运维·音视频·gstreamer音视频·音视频进阶·gstreamer音视频进阶
H.莓飛6 小时前
【C++】命名空间、缺省参数、函数重载与引用
linux·开发语言·c++·visual studio
91刘仁德6 小时前
IP协议详解:从IP协议头到网段划分、路由与NAT
linux·服务器·网络·网络协议·tcp/ip
辻弋2016 小时前
五年前的旅行视频糊成马赛克?Video2X用Real-ESRGAN逐帧重建细节,但只支持Windows、集显用户建议直接放弃
服务器·数据库·windows·游戏引擎·电脑