serversideup/docker-sshserversideup/docker-ssh 是一个基于Debian的强化SSH服务器容器,专为创建安全隧道以访问集群环境而设计。它提供了严格的安全配置,同时保持轻量级和易用性,适合需要安全集群访问的场景。
AUTHORIZED_KEYS环境变量授权访问ALLOWED_IPS环境变量限制允许访问的IP| 镜像 | 镜像大小 | 描述 |
|---|---|---|
serversideup/docker-ssh |  | AllowUsers tunnel(允许tunnel用户从任何IP访问) |
| AUTHORIZED_KEYS | 🚨 需用户自行设置。授权密钥文件内容 | 无 |
| DEBUG | 是否显示调试信息 | false |
| PGID | SSH用户的组ID | 9999 |
| PUID | SSH用户的用户ID | 9999 |
| SSH_GROUP | SSH用户的组名 | tunnelgroup |
| SSH_HOST_KEY_DIR | SSH主机密钥存储路径 | /etc/ssh/ssh_host_keys/ |
| SSH_PORT | 容器内SSH服务监听端口(需映射到主机端口) | 2222 |
| SSH_USER | SSH登录用户名 | tunnel |
AUTHORIZED_KEYS环境变量或提供/authorized_keys文件可通过环境变量加载多个密钥:
bashAUTHORIZED_KEYS="$(cat .ssh/my_ssh_public_keys.txt)"
或通过卷挂载authorized_keys文件,确保挂载路径为/authorized_keys。镜像会自动将该文件配置给指定用户。
ℹ️ 注意: 若同时提供环境变量和文件,将优先使用环境变量的值。
ALLOWED_IPS环境变量格式参考SSH的AllowUsers配置,支持IP地址和通配符:
bashALLOWED_IPS="AllowUsers *@192.168.1.0/24 *@172.16.0.1 *@10.0.*.1"
需将主机端口映射到容器的2222端口(容器内默认SSH端口):
bashdocker run --rm --name=ssh -p ***:2222 -e AUTHORIZED_KEYS="$(cat .ssh/id_rsa.pub)" serversideup/docker-ssh
连接示例:
bashssh -p *** tunnel@your-server-ip
以下示例展示如何通过SSH隧道安全访问Docker Swarm中的MariaDB数据库。
ALLOWED_IPS变量yamlservices: mariadb: image: mariadb:10.11 networks: - database environment: MARIADB_ROOT_PASSWORD: "myrootpassword" ssh: image: serversideup/docker-ssh ports: - target: 2222 published: 2222 mode: host environment: AUTHORIZED_KEYS: > "# 开始密钥 ssh-ed25519 ***abcdefghijklmnoqrstuvwxyz user-a ssh-ed25519 abcdefghijklmnoqrstuvwxyz*** user-b # 结束密钥" ALLOWED_IPS: "AllowUsers tunnel@1.2.3.4" # 限制仅允许1.2.3.4访问 networks: - database networks: database:
/authorized_keys文件挂载yamlservices: mariadb: image: mariadb:10.11 networks: - database environment: MARIADB_ROOT_PASSWORD: "myrootpassword" ssh: image: serversideup/docker-ssh ports: - target: 2222 published: 2222 mode: host environment: ALLOWED_IPS: "AllowUsers tunnel@1.2.3.4" configs: - source: ssh_authorized_keys target: /authorized_keys # 镜像会自动处理此文件 mode: 0600 networks: - database configs: ssh_authorized_keys: file: ./authorized_keys # 本地authorized_keys文件路径 networks: database:
本项目欢迎社区贡献,包括bug修复、功能建议、文档改进等。如需贡献,请:
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务