SSH 黑屏配置试用环境机器,受限bash和自定义shell

背景

Smartshell是WEB版本的Xshell黑屏操作,用来解决小团队没有堡垒机的问题。可以集中管控资源,登录凭证,以及对操作有个日志记录。其中试用环境需要一台测试机器,让用户查看页面。

最后使用了自定义shell解决,如下图使用test用户登录进去运行的是自己的shell文件。最后效果如下,输出什么都是shell文件中编辑的。

自定义的bash shell文件如下:

bash 复制代码
#!/bin/sh

printf '\033[?25l' 2>/dev/null

trap 'printf "\033[?25h\n\nConnection closed\n"; exit 0' INT TERM

ls
pwd
ll

echo "========================================="
echo "  Custom Shell - Black Screen Test Mode"
echo "========================================="
echo "Connected: $(date)"
echo "User: $(whoami)"
echo "From: $(echo $SSH_CLIENT | awk '{print $1}')"
echo "========================================="
echo ""
echo "enter terminal..."

while true; do
    sleep 1
    echo -ne "$(date +'%Y-%m-%d %H:%M:%S')\r"
done

问题

如果配置正式机器就需要配置严格的限制权限,否则非常容易被利用。

解决方案

  1. 使用docker创建一个centos的容器,使用ssh登录这个机器

  2. 使用受限bash,配置只允许使用的命令

  3. 自定义Shell

方案对比

对比维度 Docker 容器 rbash 自定义 Shell
隔离级别 进程+文件系统隔离 仅 Shell 层面限制 仅 Shell 层面限制
逃逸风险 极低(需内核漏洞) 中等(配置不当易逃逸) 低(脚本可控)
资源限制 支持 cgroup 不支持 不支持
操作审计 配合宿主机日志 无内置审计 支持内置日志
防御深度 5 层(宿主机+容器+SSH+内核+SELinux) 1 层(Shell) 1 层(Shell)
学习成本 中高 低 中

选型:自定义Shell方式,实现简单,灵活可控

实现

cat /etc/passwd 查看用户bash

/bin/bash 就是root 登录ssh黑屏交互的程序。登录ssh本质是连接,验证,登录机器,找一个Linux规定的程序来接待你。这个/bin/bash就是 根据root登录进去接待你的程序。

添加用户,并设置shell文件

创建文件:echo "" > /opt/shell/custom_shell.sh

赋予权限:chmod 755 /opt/shell/custom_shell.sh

创建用户,并设置执行sh文件:useradd -m -s /opt/shell/custom_shell.sh testuser

查询是否设置OK:

root@iZ2ze6n5mtst0dxrvqZ \~# grep testuser /etc/passwd

testuser:x:1001:1002::/home/testuser:/opt/shell/custom_shell.sh

给用户设置密码:passwd testuser

使用SSH登录

相关推荐
Escalating_xu7 小时前
【Linux 网络编程】手写序列化与反序列化:从 x op y 到能校验的文本协议
linux·运维·网络
润滑卫士7 小时前
油液多参数融合故障诊断:数据级融合与决策级融合方法
运维
李纲明9 小时前
WordPress 后台登录马上被踢回登录页:Cookie 域、HTTPS、盐值和页面缓存怎么查
运维·缓存·https·php·wordpress·cookie
todoitbo9 小时前
在 Ubuntu ARM64 上运行 Q1 V3.0 MuJoCo 模型:加载、步进和单执行器响应
linux·运维·ubuntu·ai·机器人·仿真教程·启元
AR-26710-9 小时前
Linux Day26——传输层与三次握手
linux·运维
额额额对了10 小时前
嵌入式 Linux 实战:i.MX6ULL 上的 CAN 通信与摄像头采集
linux·运维·服务器
RFID科技的魅力11 小时前
2026 年 RFID 资产标签批量制作怎么做?RFID 标签打印机实操指南
运维·人工智能·嵌入式硬件·物联网
灯澜忆梦11 小时前
【Linux】#10 | Linux 终端实用快捷键 + 安装应用
linux·运维·服务器
OnlyEasyCode13 小时前
IIS开放端口转发后端
运维·服务器
合合技术团队14 小时前
合合信息旗下TextIn面向全球市场推出文档处理自动化公有云服务
运维·自动化