OpenSSH Server 镜像是一个沙箱环境,允许通过 SSH 访问而无需授予对整个服务器的密钥权限。通常,通过私钥授予 SSH 访问意味着给予服务器的完全访问权限,而此容器创建了一个受限的沙箱环境,用户只能访问映射的文件夹和容器内运行的进程。
该镜像由 LinuxServer.io 团队维护,提供定期更新、安全加固和简化的用户权限管理,适用于需要安全隔离 SSH 访问的场景。
PUBLIC_KEY、PUBLIC_KEY_FILE、PUBLIC_KEY_DIR、PUBLIC_KEY_URL)PASSWORD_ACCESS)SUDO_ACCESS),支持密码或密码less sudoLOG_STDOUT)USER_NAME)该镜像通过 Docker manifest 实现多平台支持,拉取 lscr.io/linuxserver/openssh-server:latest 即可自动获取对应架构的镜像,也可通过标签指定特定架构:
| 架构 | 支持情况 | 标签 |
|---|---|---|
| x86-64 | ✅ | amd64-<version tag> |
| arm64 | ✅ | arm64v8-<version tag> |
PUBLIC_KEY、PUBLIC_KEY_FILE 或 PUBLIC_KEY_DIR 环境变量,指定的公钥将自动添加至 authorized_keys/config/.ssh/authorized_keys 并重启容器authorized_keys 中删除已添加的密钥PUBLIC_KEY_FILE 和 PUBLIC_KEY_DIR 支持 Docker secretsPASSWORD_ACCESS=true 启用密码访问,需同时设置 USER_PASSWORD 或 USER_PASSWORD_FILEbashssh -i /path/to/private/key -p <映射端口> <用户名>@<服务器IP>
SUDO_ACCESS=true 允许 sudo 访问,未设置 USER_PASSWORD 时为密码less sudoUSER_PASSWORD 或 USER_PASSWORD_FILE 用于设置 sudo 密码/etc/motd 自定义登录欢迎信息--hostname 参数设置容器主机名容器提供密钥生成辅助脚本,运行以下命令生成 SSH 公私钥对:
bashdocker run --rm -it --entrypoint /keygen.sh linuxserver/openssh-server
按照提示操作,生成的密钥将显示在控制台输出,需自行保存。
yaml--- services: openssh-server: image: lscr.io/linuxserver/openssh-server:latest container_name: openssh-server hostname: openssh-server # 可选 environment: - PUID=1000 # 用户ID - PGID=1000 # 组ID - TZ=Etc/UTC # 时区 - PUBLIC_KEY=yourpublickey # 可选,公钥内容 - PUBLIC_KEY_FILE=/path/to/file # 可选,公钥文件路径 - PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys # 可选,公钥目录 - PUBLIC_KEY_URL=[***] # 可选,公钥URL - SUDO_ACCESS=false # 可选,是否允许sudo - PASSWORD_ACCESS=false # 可选,是否允许密码访问 - USER_PASSWORD=password # 可选,用户密码 - USER_PASSWORD_FILE=/path/to/file # 可选,密码文件路径 - USER_NAME=linuxserver.io # 可选,用户名(默认:linuxserver.io) - LOG_STDOUT= # 可选,设置为true将日志输出至stdout volumes: - /path/to/openssh-server/config:/config # 配置目录 ports: - 2222:2222 # SSH端口映射 restart: unless-stopped
bashdocker run -d \ --name=openssh-server \ --hostname=openssh-server `# 可选` \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Etc/UTC \ -e PUBLIC_KEY=yourpublickey `# 可选` \ -e PUBLIC_KEY_FILE=/path/to/file `# 可选` \ -e PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys `# 可选` \ -e PUBLIC_KEY_URL=[***] `# 可选` \ -e SUDO_ACCESS=false `# 可选` \ -e PASSWORD_ACCESS=false `# 可选` \ -e USER_PASSWORD=password `# 可选` \ -e USER_PASSWORD_FILE=/path/to/file `# 可选` \ -e USER_NAME=linuxserver.io `# 可选` \ -e LOG_STDOUT= `# 可选` \ -p 2222:2222 \ -v /path/to/openssh-server/config:/config \ --restart unless-stopped \ lscr.io/linuxserver/openssh-server:latest
| 参数 | 功能 |
|---|---|
--hostname= | 可选,定义容器主机名 |
-p 2222:2222 | SSH端口映射(主机:容器) |
-e PUID=1000 | 用户ID,用于权限映射 |
-e PGID=1000 | 组ID,用于权限映射 |
-e TZ=Etc/UTC | 时区,参考 时区列表 |
-e PUBLIC_KEY=yourpublickey | 可选,公钥内容,自动添加至authorized_keys |
-e PUBLIC_KEY_FILE=/path/to/file | 可选,公钥文件路径(支持Docker secrets) |
-e PUBLIC_KEY_DIR=/path/to/directory | 可选,公钥目录路径(仅包含公钥文件,支持Docker secrets) |
-e PUBLIC_KEY_URL=[***] | 可选,公钥URL,从URL获取公钥 |
-e SUDO_ACCESS=false | 设置为true允许sudo访问,未设置密码时为密码less sudo |
-e PASSWORD_ACCESS=false | 设置为true允许密码访问,需配合USER_PASSWORD或USER_PASSWORD_FILE |
-e USER_PASSWORD=password | 可选,用户密码(用于sudo或密码访问) |
-e USER_PASSWORD_FILE=/path/to/file | 可选,密码文件路径(覆盖USER_PASSWORD,支持Docker secrets) |
-e USER_NAME=linuxserver.io | 可选,SSH用户名(默认:linuxserver.io) |
-e LOG_STDOUT= | 设置为true将日志输出至stdout而非文件 |
-v /config | 配置目录,包含所有相关配置文件 |
通过 FILE__ 前缀从文件加载环境变量,例如:
bash-e FILE__MYVAR=/run/secrets/mysecretvariable
上述命令将从 /run/secrets/mysecretvariable 文件内容设置 MYVAR 环境变量。
通过 -e UMASK=022 覆盖容器内服务的默认umask设置。Umask通过减法调整权限,而非直接设置权限,详情参考 Umask说明。
使用卷映射时,可通过 PUID 和 PGID 解决权限问题。确保主机卷目录的所有者与容器内的 PUID/PGID 一致。通过以下命令获取当前用户的ID:
bashid your_user
示例输出:
textuid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
:
bashdocker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
注册后,使用 -f Dockerfile.aarch64 指定架构对应的Dockerfile。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429