
透明SSH堡垒机(无需传统跳转的跳板主机/服务器)
!https://raw.githubusercontent.com/moul/sshportal/master/.assets/flow-diagram.png
sshportal 是一款透明SSH堡垒机,旨在提供安全、便捷的服务器访问管理方案。它消除了传统跳板机的复杂性,实现用户与主机的独立管理,支持便捷的用户邀请系统、多级别访问控制等功能,适用于企业服务器访问管理、教育环境临时访问分配、安全审计等场景。
启动服务器
console# 后台启动服务器,挂载当前目录以持久化sqlite数据库 docker run -p 2222:2222 -d --name=sshportal -v "$(pwd):$(pwd)" -w "$(pwd)" moul/sshportal:v1.10.0 # 查看日志获取管理员邀请令牌(首次运行必需) docker logs -f sshportal
升级方法
sh# 停止并备份当前容器和数据库 docker stop sshportal docker rename sshportal sshportal_old cp sshportal.db sshportal.db.bkp # 启动新版本 docker run -p 2222:2222 -d --name=sshportal -v "$(pwd):$(pwd)" -w "$(pwd)" moul/sshportal:v1.10.0 # 检查日志确认迁移是否成功 docker logs -f sshportal
回滚方法
shdocker stop sshportal docker rm sshportal cp sshportal.db.bkp sshportal.db docker rename sshportal_old sshportal docker start sshportal docker logs -f sshportal
1. 关联管理员SSH密钥
首次启动后,从日志获取邀请令牌(如invite:BpLnfgDsc2WD8F2q),执行:
consolessh localhost -p 2222 -l invite:BpLnfgDsc2WD8F2q
2. 进入管理员交互shell
consolessh localhost -p 2222 -l admin
3. 创建主机
consoleconfig> host create bart@foo.example.org 1
4. 列出主机
consoleconfig> host ls ID | NAME | URL | KEY | PASS | GROUPS | COMMENT +----+------+-------------------------+---------+------+---------+---------+ 1 | foo | bart@foo.example.org:22 | default | | default | Total: 1 hosts.
5. 在目标服务器上配置密钥
consolessh bart@foo.example.org "$(ssh localhost -p 2222 -l admin key setup default)"
6. 连接目标主机
consolessh localhost -p 2222 -l foo bart@foo>
7. 邀请用户
consoleconfig> user invite bob@example.com User 2 created. To associate this account with a key, use the following SSH user: 'invite:NfHK5a84jjJkwzDk'.
内置备份/恢复
sh# 备份 ssh portal config backup > sshportal.bkp # 恢复 ssh portal config restore < sshportal.bkp
额外备份方法
sh# SQLite数据库备份 sqlite3 sshportal.db .dump > sshportal.sql.bkp # 直接复制数据库文件 cp sshportal.db sshportal.db.bkp
通过SSH检查
consolessh healthcheck@sshportal OK
通过内置工具检查
console# 检查状态 sshportal healthcheck --addr=localhost:2222; echo $? 0 # 等待健康后连接 sshportal healthcheck --wait && ssh sshportal -l admin
编辑~/.ssh/config:
iniHost portal User admin Port 2222 # 堡垒机端口 HostName 127.0.0.1 # 堡垒机主机名
使用别名连接:
bash# 进入管理员shell ssh portal # 连接主机 ssh hostname@portal
使用MySQL作为后端实现水平扩展:
consolesshportal --db-conn=user:pass@host/dbname?parseTime=true --db-driver=mysql
提供丰富的管理命令,包括ACL、主机、用户、密钥、会话等管理,例如:
host create:创建主机user invite:邀请用户acl create:创建访问控制规则session ls:列出会话config backup:备份配置完整命令列表可通过help命令查看。
可使用以下公开服务器测试:
consolessh portal host create *** ssh sdf@portal ssh portal host create *** ssh whoami@portal ssh portal host create *** ssh chat@portal
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务