AI驱动的信息安全组件 | 企业级透明代理解决方案
L8AI透明安全容器是一款基于AI技术的企业级信息安全组件,提供透明宿主机连接、零信任网络架构和智能操作审计功能。
host命令即可curl -fsSL https://cnb.cool/aiedulab/transsafe-container/-/raw/main/install.sh | bash
# 1. 克隆项目代码
git clone https://cnb.cool/aiedulab/transsafe-container.git
cd transsafe-container
# 2. 启动容器(自动拉取镜像)
./start.sh
如果您已经通过git clone下载了代码,install.sh会检测并跳过重复克隆:
# 在已有的项目目录中
cd /path/to/transsafe-container
curl -fsSL https://cnb.cool/aiedulab/transsafe-container/-/raw/main/install.sh | bash
# 或者直接启动
./start.sh
# 方法1: 使用install.sh更新(推荐)
curl -fsSL https://cnb.cool/aiedulab/transsafe-container/-/raw/main/install.sh | bash
# 方法2: 手动更新
cd /opt/transsafe-container # 或你的安装目录
git pull
./start.sh
# 方法3: 在项目目录内更新
git pull && ./start.sh
/opt/transsafe-containertranssafe-container# 查找transsafe-container目录
find / -name "transsafe-container" -type d 2>/dev/null
# 或者查看容器挂载信息
docker inspect transsafe-ssh | grep -A 5 -B 5 "Source"
# 使用install.sh安装的用户
cd /opt/transsafe-container
# 手动安装的用户
cd /path/to/your/transsafe-container
系统自动将所有操作记录到CSV格式文件中,便于分析和审计:
# 在容器内查看操作日志(新位置,避免权限问题)
cat /home/admin/.transsafe/user_actions.csv
# 实时监控日志
tail -f /home/admin/.transsafe/user_actions.csv
# 从宿主机查看日志
docker exec transsafe-ssh cat /home/admin/.transsafe/user_actions.csv
# 兼容旧位置(如果存在)
docker exec transsafe-ssh cat /var/log/transsafe/user_actions.csv
timestamp,client_ip,user,working_directory,action,status,command,target,details 2025-08-29 02:06:56,43.139.160.244,admin,/home/admin,HOST_CONNECT,SUCCESS,host echo test,宿主机,SSH密钥连接成功 2025-08-29 02:08:44,43.139.160.244,admin,/home/admin,HOST_CONNECT,SUCCESS,host whoami,宿主机,SSH密钥连接成功
# 使用scp上传文件
scp -P 2022 localfile.txt admin@server:/home/admin/
# 上传目录
scp -r -P 2022 localdir/ admin@server:/home/admin/
# 下载单个文件
scp -P 2022 admin@server:/home/admin/remotefile.txt ./
# 下载目录
scp -r -P 2022 admin@server:/home/admin/remotedir/ ./
SSH加密算法安全
chacha20-poly1305@openssh.com, aes256-gcm@openssh.com, aes128-gcm@openssh.comhmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.comcurve25519-sha256, ecdh-sha2-nistp256/384/521PAM登录失败锁定
pam_faillock.so模块密码策略
会话超时
TMOUT=600秒(10分钟)无活动自动断开CSV格式日志审计系统
# 基本连接(使用安装时显示的密码)
ssh admin@服务器IP -p 2022
# 本地测试连接
ssh admin@localhost -p 2022
# 使用密钥连接(推荐生产环境)
ssh -i ~/.ssh/your_key admin@服务器IP -p 2022
连接到透明容器后,可以无感知地连接到宿主机:
# 在容器内,一键连接宿主机
host # 标准宿主机连接
l8ai # L8AI智能连接助手
transsafe-tools host # 完整命令形式
# 执行特定命令
host "ls -la" # 在宿主机执行命令
host "systemctl status ssh" # 检查SSH服务状态
host "docker ps" # 查看宿主机Docker容器
# 执行单个命令
host "echo 'Hello from host'"
# 执行复杂命令
host "ps aux | grep docker | head -5"
# 文件操作
host "cat /etc/hostname"
host "df -h"
# 系统管理
host "systemctl status nginx"
host "journalctl -n 10"
# 启动交互式会话(带完整日志记录)
host
# 在宿主机上执行任意命令
ls -la
cd /workspace
vim file.txt
top
# 直接SSH到代理端口,感觉像直接连接宿主机
ssh -i /path/to/key root@容器IP -p 2024
# 示例
ssh -o StrictHostKeyChecking=no -i /root/.ssh/transsafe_key root@localhost -p 2024
所有host命令操作都会自动记录到CSV格式日志中:
# 查看操作日志
cat /home/admin/.transsafe/user_actions.csv
# 实时监控日志
tail -f /home/admin/.transsafe/user_actions.csv
交互式会话的详细操作记录:
# 查看会话日志文件
ls /home/admin/.transsafe/sessions/
# 查看具体会话内容
cat /home/admin/.transsafe/sessions/session_*.log
工具会自动检测以下SSH端口:
# 指定SSH端口
export HOST_SSH_PORT=3600
host "hostname"
# 在容器启动时设置
docker run -e HOST_SSH_PORT=3600 transsafe-container
透明容器支持从容器内部直接部署Docker服务到宿主机,实现真正的透明化运维。
# SSH连接到透明容器
ssh admin@服务器IP -p 2022
# 查看帮助信息
/scripts/docker_deploy.sh --help
# 列出已部署的项目
/scripts/docker_deploy.sh -l
# 上传并部署docker-compose文件
/scripts/docker_deploy.sh docker-compose.yml
# 部署指定项目
/scripts/docker_deploy.sh -d myproject
# 停止项目
/scripts/docker_deploy.sh -s myproject
# 删除项目
/scripts/docker_deploy.sh -r myproject
在本地创建docker-compose.yml文件:
# docker-compose.yml 示例
version: '3.8'
services:
nginx:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html:ro
restart: unless-stopped
redis:
image: redis:alpine
ports:
- "6379:6379"
restart: unless-stopped
# 方法1:使用scp上传
scp -P 2022 docker-compose.yml admin@服务器IP:/tmp/
# 方法2:在容器内创建文件
ssh admin@服务器IP -p 2022
cat > /tmp/docker-compose.yml << 'EOF'
version: '3.8'
services:
nginx:
image: nginx:alpine
ports:
- "8080:80"
restart: unless-stopped
EOF
# 在透明容器内执行
/scripts/docker_deploy.sh /tmp/docker-compose.yml
# 在宿主机上登录Docker Hub
host "docker login"
# 或者在部署前登录
host "echo 'your_password' | docker login -u your_username --password-stdin"
# 登录私有仓库
host "docker login your-registry.com"
# 使用私有镜像的docker-compose示例
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
app:
image: your-registry.com/your-namespace/your-app:latest
ports:
- "3000:3000"
environment:
- NODE_ENV=production
restart: unless-stopped
EOF
# 登录阿里云镜像仓库
host "docker login --username=your_username registry.cn-hangzhou.aliyuncs.com"
# docker-compose示例
version: '3.8'
services:
app:
image: registry.cn-hangzhou.aliyuncs.com/your_namespace/your_app:latest
ports:
- "8080:8080"
restart: unless-stopped
# 登录Harbor
host "docker login harbor.your-company.com"
# 使用Harbor镜像
version: '3.8'
services:
app:
image: harbor.your-company.com/project/app:v1.0.0
ports:
- "8080:8080"
restart: unless-stopped
# 查看所有项目状态
/scripts/docker_deploy.sh -l
# 查看项目日志
host "cd /opt/transsafe/deploy/myproject && docker-compose logs -f"
# 重启项目
/scripts/docker_deploy.sh -s myproject
/scripts/docker_deploy.sh -d myproject
# 更新项目
/scripts/docker_deploy.sh -u new-docker-compose.yml
/scripts/docker_deploy.sh -d myproject
# 上传配置文件
scp -P 2022 -r ./config/ admin@服务器IP:/tmp/
# 在docker-compose中使用
version: '3.8'
services:
app:
image: your-app:latest
volumes:
- /tmp/config:/app/config:ro
environment:
- DATABASE_URL=postgresql://user:pass@db:5432/dbname
env_file:
- /tmp/config/.env
# 创建数据目录
host "mkdir -p /opt/data/mysql /opt/data/redis"
# docker-compose配置
version: '3.8'
services:
mysql:
image: mysql:8.0
volumes:
- /opt/data/mysql:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=your_password
ports:
- "3306:3306"
version: '3.8'
services:
wordpress:
image: wordpress:latest
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress_password
WORDPRESS_DB_NAME: wordpress
volumes:
- /opt/data/wordpress:/var/www/html
depends_on:
- db
restart: unless-stopped
db:
image: mysql:8.0
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress_password
MYSQL_ROOT_PASSWORD: root_password
volumes:
- /opt/data/mysql:/var/lib/mysql
restart: unless-stopped
version: '3.8'
services:
nginx:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- /opt/data/web:/var/www/html:ro
- /tmp/nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- php
restart: unless-stopped
php:
image: php:8.1-fpm-alpine
volumes:
- /opt/data/web:/var/www/html
restart: unless-stopped
version: '3.8'
services:
prometheus:
image: prom/prometheus:latest
ports:
- "9090:9090"
volumes:
- /tmp/prometheus.yml:/etc/prometheus/prometheus.yml:ro
- /opt/data/prometheus:/prometheus
restart: unless-stopped
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin123
volumes:
- /opt/data/grafana:/var/lib/grafana
restart: unless-stopped
镜像拉取失败
# 检查网络连接
host "ping docker.io"
# 检查Docker登录状态
host "docker info"
# 手动拉取镜像
host "docker pull nginx:alpine"
端口冲突
# 检查端口占用
host "netstat -tlnp | grep 8080"
# 修改docker-compose端口映射
ports:
- "8081:80" # 改用8081端口
权限问题
# 检查目录权限
host "ls -la /opt/data/"
# 修复权限
host "chown -R 1000:1000 /opt/data/app"
服务无法启动
# 查看详细日志
host "cd /opt/transsafe/deploy/myproject && docker-compose logs"
# 检查容器状态
host "docker ps -a"
# 密码认证测试
sshpass -p 'your_password' ssh -p 2022 admin@localhost 'echo success'
# 公钥认证测试
ssh -i ~/.ssh/id_rsa -p 2022 admin@localhost 'echo success'
./start.sh [选项]
选项:
-n, --name NAME 容器名称 (默认: transsafe-ssh)
-i, --image IMAGE 镜像名称 (默认: transsafe-container:latest)
-p, --port PORT 宿主机端口 (默认: 2022)
-P, --password PASSWORD admin用户密码
-k, --host-key PATH 宿主机私钥路径 (用于容器连接宿主机)
-a, --authorized-keys PATH 授权密钥文件路径
--stop 停止并删除容器
--logs 查看容器日志
--shell 进入容器shell
-h, --help 显示帮助信息
ADMIN_PASSWORD # 管理员密码
HOST_SSH_PORT # 宿主机SSH端口 (默认自动检测)
HOST_USER # 宿主机用户 (默认root)
HOST_ADDRESS # 宿主机地址 (默认host.docker.internal)
LOG_LEVEL # 日志级别 (INFO/WARN/ERROR)
连接被拒绝
# 检查端口映射是否正确
docker ps | grep transsafe
# 确认容器是否正常运行
docker ps
# 查看容器日志
./start.sh --logs
# 检查防火墙设置
host "ufw status" # Ubuntu
host "firewall-cmd --list-ports" # CentOS
认证失败
# 检查密码是否正确(查看安装时显示的密码)
docker logs transsafe-ssh | grep "密码"
# 确认authorized_keys文件权限
docker exec transsafe-ssh ls -la /home/admin/.ssh/
# 修复权限
docker exec transsafe-ssh chmod 600 /home/admin/.ssh/authorized_keys
# 验证公钥格式
docker exec transsafe-ssh ssh-keygen -lf /home/admin/.ssh/authorized_keys
无法连接宿主机
# 确认宿主机SSH服务运行状态
systemctl status sshd
# 检查SSH端口
netstat -tlnp | grep :22
# 检查私钥文件是否正确挂载
docker exec transsafe-ssh ls -la /home/admin/.ssh/host_key
# 验证宿主机authorized_keys配置
cat ~/.ssh/authorized_keys
# 手动测试SSH连接
docker exec transsafe-ssh ssh -o StrictHostKeyChecking=no -i /home/admin/.ssh/host_key root@host.docker.internal
CSV日志权限问题
# 检查日志目录权限
docker exec transsafe-ssh ls -la /var/log/transsafe/
# 修复权限
docker exec -u root transsafe-ssh chown -R admin:admin /var/log/transsafe/
# 检查新位置日志
docker exec transsafe-ssh ls -la /home/admin/.transsafe/
Docker部署脚本无法执行
# 检查脚本权限
docker exec transsafe-ssh ls -la /scripts/docker_deploy.sh
# 修复权限
docker exec -u root transsafe-ssh chmod +x /scripts/docker_deploy.sh
# 手动测试脚本
docker exec transsafe-ssh /scripts/docker_deploy.sh --help
无法连接到宿主机Docker
# 检查宿主机Docker服务
host "systemctl status docker"
# 检查Docker socket权限
host "ls -la /var/run/docker.sock"
# 测试Docker命令
host "docker version"
host "docker info"
镜像拉取失败
# 检查网络连接
host "ping docker.io"
host "ping registry-1.docker.io"
# 检查DNS解析
host "nslookup docker.io"
# 检查Docker登录状态
host "docker info | grep Username"
# 手动拉取镜像测试
host "docker pull hello-world"
# 配置镜像加速器(中国用户)
host "mkdir -p /etc/docker"
host "cat > /etc/docker/daemon.json << 'EOF'
{
\"registry-mirrors\": [
\"https://mirror.ccs.tencentyun.com\",
\"https://docker.mirrors.ustc.edu.cn\"
]
}
EOF"
host "systemctl restart docker"
私有镜像认证问题
# 检查Docker登录状态
host "cat ~/.docker/config.json"
# 重新登录私有仓库
host "docker login your-registry.com"
# 测试私有镜像拉取
host "docker pull your-registry.com/test-image:latest"
# 检查镜像仓库连通性
host "curl -I https://your-registry.com/v2/"
# 启动调试容器
docker run -it --rm docker.cnb.cool/aiedulab/transsafe-container:latest /bin/bash
# 手动启动SSH服务
/usr/sbin/sshd -D -e -d
# 测试Docker部署功能
/scripts/docker_deploy.sh --help
host命令即可# 查看容器日志
./start.sh --logs
# 进入容器shell
./start.sh --shell
# 停止容器
./start.sh --stop
# 重启容器
./start.sh --stop && ./start.sh
# 更新容器
git pull && ./start.sh
# 查看容器状态
docker ps | grep transsafe
# 一键安装并启动
curl -fsSL https://cnb.cool/aiedulab/transsafe-container/-/raw/main/install.sh | bash
# 用户通过容器连接,避免直连老旧系统SSH
ssh admin@server -p 2022
# 生成SSH密钥对
ssh-keygen -t ed25519 -f ~/.ssh/transsafe_key -N ""
cat ~/.ssh/transsafe_key.pub >> ~/.ssh/authorized_keys
# 启动时挂载宿主机密钥
./start.sh -k ~/.ssh/transsafe_key -P mypassword
# SSH到容器后一键连接宿主机
ssh admin@server -p 2022
host # 直接连接宿主机
host "systemctl status nginx" # 管理宿主机服务
# 连接到透明容器
ssh admin@server -p 2022
# 部署Web应用
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
nginx:
image: nginx:alpine
ports:
- "8080:80"
restart: unless-stopped
EOF
# 一键部署到宿主机
/scripts/docker_deploy.sh docker-compose.yml
# 验证部署
host "curl http://localhost:8080"
# 登录私有仓库
host "docker login your-registry.com"
# 部署私有应用
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
app:
image: your-registry.com/your-app:latest
ports:
- "3000:3000"
environment:
- NODE_ENV=production
restart: unless-stopped
EOF
/scripts/docker_deploy.sh docker-compose.yml
# 部署完整的微服务栈
cat > microservices.yml << 'EOF'
version: '3.8'
services:
api-gateway:
image: nginx:alpine
ports:
- "80:80"
depends_on:
- user-service
- order-service
user-service:
image: your-registry.com/user-service:v1.0
ports:
- "3001:3000"
environment:
- DATABASE_URL=postgresql://user:pass@postgres:5432/users
order-service:
image: your-registry.com/order-service:v1.0
ports:
- "3002:3000"
environment:
- DATABASE_URL=postgresql://user:pass@postgres:5432/orders
postgres:
image: postgres:13
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=pass
volumes:
- /opt/data/postgres:/var/lib/postgresql/data
redis:
image: redis:alpine
ports:
- "6379:6379"
EOF
/scripts/docker_deploy.sh microservices.yml
# docker-compose.yml - 透明容器本身的批量部署
version: '3.8'
services:
transsafe-ssh:
image: docker.cnb.cool/aiedulab/transsafe-container:latest
ports:
- "2022:2022"
volumes:
- ./keys/host_key:/home/admin/.ssh/host_key:ro
- ./keys/authorized_keys:/home/admin/.ssh/authorized_keys:ro
- /opt/transsafe/logs:/var/log/transsafe
environment:
- ADMIN_PASSWORD=strongpassword
- HOST_SSH_PORT=22
restart: unless-stopped
networks:
- transsafe-net
networks:
transsafe-net:
driver: bridge
# 在CI/CD流水线中使用透明容器部署
# .gitlab-ci.yml 示例
deploy:
stage: deploy
script:
- scp -P 2022 docker-compose.yml admin@$SERVER_IP:/tmp/
- ssh -p 2022 admin@$SERVER_IP "/scripts/docker_deploy.sh /tmp/docker-compose.yml"
only:
- main
本项目采用MIT许可证 - 查看LICENSE文件了解详情。
如遇问题,请:
安全提醒: