
ricariel/bastion本容器镜像为一款用于堡垒机场景的小型SSH服务器镜像,提供通过SSH协议代理客户端连接至其他SSH服务器的功能。适用于高安全环境中,因防火墙、路由策略或网络地址限制导致客户端无法直接访问目标服务器时,作为中间代理节点(堡垒机)使用。
bastion)登录;bastion 用户作为唯一登录主体,简化权限管理。authorized_keys 文件,包含允许登录堡垒机的客户端公钥(每行一个公钥)。示例 Dockerfile:
dockerfileFROM [原镜像名称] # 替换为实际镜像名称 # 生成唯一SSH主机密钥(避免使用默认密钥,提升安全性) RUN ssh-keygen -A # 添加客户端公钥至bastion用户的authorized_keys COPY authorized_keys /home/bastion/.ssh/authorized_keys # 修复权限(确保sshd可读取公钥文件) RUN chown -R bastion:bastion /home/bastion/.ssh && chmod 600 /home/bastion/.ssh/authorized_keys
使用 docker run 启动容器,映射SSH端口(如宿主机2200端口映射至容器22端口),并确保容器网络可被客户端访问。
示例命令:
bashdocker run -d \ --name ssh-bastion \ -p 2200:22 \ # 宿主机端口:容器SSH端口(容器内固定为22) --restart unless-stopped \ [自定义镜像名称] # 替换为步骤1构建的镜像名称
通过堡垒机代理连接目标服务器的命令格式:
bashssh -A -o ProxyCommand='ssh -W %h:%p -p 2200 bastion@<堡垒机主机名或IP>' <目标服务器用户>@<目标服务器主机名>
-A:启用SSH代理转发(可选,如需通过堡垒机进一步代理至其他服务器);2200:宿主机映射的堡垒机SSH端口;<堡垒机主机名或IP>:运行容器的宿主机地址;<目标服务器用户>@<目标服务器主机名>:实际需访问的目标SSH服务器信息。通过修改客户端 ~/.ssh/config 文件,添加代理规则以简化连接命令。
示例配置(~/.ssh/config 片段):
ssh# 单个目标服务器配置 Host target-server HostName <目标服务器主机名> User <目标服务器用户> ProxyCommand ssh -W %h:%p -p 2200 bastion@<堡垒机主机名或IP> # 批量域名代理(如对.example.com域名下所有服务器使用堡垒机) Host *.example.com ProxyCommand ssh -W %h:%p -p 2200 bastion@<堡垒机主机名或IP>
配置后,直接通过 ssh target-server 即可连接目标服务器(自动通过堡垒机代理)。
bastion 用户的 authorized_keys。bastion 用户无交互式shell与TTY,无法在堡垒机内执行命令,仅用于代理转发。--read-only、--cap-drop=ALL),进一步限制容器权限。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务