轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像
交易
充值流量¥7起我的订单
文档
工具
提交工单页面收录
centos-ssh

jdeathe/centos-ssh

jdeathe
自动构建

基于CentOS的Docker镜像,集成OpenSSH、Supervisor及EPEL/IUS/SCL仓库,支持SSH密钥认证和进程管理,适用于需要安全远程访问和服务监控的场景。

122 次收藏下载次数: 0状态:自动构建维护者:jdeathe仓库类型:镜像最近更新:6 年前
让 AI 帮你使用轩辕镜像? · 展开查看说明 · 点击收起说明

如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这句话即可:

请先完整阅读并严格遵守以下文档中的全部规则与要求:

https://xuanyuan.cloud/agents.md

在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

中文简介
下载命令
镜像标签列表与下载命令
轩辕镜像,加速的不只是镜像。
点击查看

标签及对应的Dockerfile链接

  • https://github.com/jdeathe/centos-ssh/releases/tag/2.6.1, centos-7 https://github.com/jdeathe/centos-ssh/blob/centos-7/Dockerfile
  • https://github.com/jdeathe/centos-ssh/releases/tag/1.11.1, centos-6 https://github.com/jdeathe/centos-ssh/blob/centos-6/Dockerfile

概述

镜像构建中包含http://fedoraproject.org/wiki/EPEL%E3%80%81IUS%E5%92%8CSCL%E4%BB%93%E5%BA%93%E3%80%82%E5%B7%B2%E5%AE%89%E8%A3%85%E7%9A%84%E5%8C%85%E5%8C%85%E6%8B%AChttps://github.com/rvoicilas/inotify-tools/wiki%E3%80%81OpenSSH%E5%AE%89%E5%85%A8%E5%A4%96%E5%A3%B3%E3%80%81Sudo%E3%80%81http://www.vim.org/%E3%80%81python-setuptools%E3%80%81http://supervisord.org/%E5%92%8Chttps://github.com/coderanger/supervisor-stdout%E3%80%82

当基于此镜像运行Docker容器时,http://supervisord.org/%E7%94%A8%E4%BA%8E%E5%90%AF%E5%8A%A8%60sshd%60%E5%AE%88%E6%8A%A4%E8%BF%9B%E7%A8%8B%E3%80%82

SSH访问通过公钥认证实现,默认需要http://www.vagrantup.com/%E7%9A%84https://github.com/mitchellh/vagrant/blob/master/keys/vagrant%E3%80%82

镜像变体

  • https://github.com/jdeathe/centos-ssh/tree/centos-7
  • https://github.com/jdeathe/centos-ssh/tree/centos-6

SSH替代方案

访问运行中容器的终端无需依赖SSH。最简单的方法是使用docker exec命令运行bash(或sh):

$ docker exec -it {{容器名称或ID}} bash

若无法使用docker exec,推荐使用命令密钥和nsenter命令。详见https://github.com/jdeathe/centos-ssh/blob/centos-7/docs/command-keys.md%E4%B8%AD%E7%9A%84%E8%AE%BE%E7%BD%AE%E8%AF%B4%E6%98%8E%E3%80%82

快速开始

生产环境中,建议选择示例中所示的特定发布标签。

SSH模式

从镜像jdeathe/centos-ssh运行名为ssh.1的SSH容器,映射到Docker主机的2020端口。

$ docker run -d \
  --name ssh.1 \
  -p 2020:22 \
  jdeathe/centos-ssh:2.6.1

查看日志获取sudo所需密码:

$ docker logs ssh.1

私钥设置

下载https://github.com/mitchellh/vagrant/blob/master/keys/vagrant%EF%BC%9A

$ curl -LSs \
  https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant \
  > id_rsa_insecure

为私钥设置严格权限:

$ chmod 600 id_rsa_insecure

连接

使用ssh命令行客户端和https://github.com/mitchellh/vagrant/blob/master/keys/vagrant%E8%BF%9E%E6%8E%A5%EF%BC%9A

$ ssh -p 2020 -i id_rsa_insecure \
  app-admin@{{docker主机IP}}

SFTP模式

从镜像jdeathe/centos-ssh运行名为sftp.1的SFTP容器,映射到Docker主机的2021端口。

$ docker run -d \
  --name sftp.1 \
  -p 2021:22 \
  -e SSH_USER_FORCE_SFTP=true \
  jdeathe/centos-ssh:2.6.1

连接

使用sftp命令行客户端和https://github.com/mitchellh/vagrant/blob/master/keys/vagrant%E8%BF%9E%E6%8E%A5%EF%BC%9A

$ sftp \
  -o Port=2021 \
  -o StrictHostKeyChecking=no \
  -i id_rsa_insecure \
  app-admin@{{docker主机IP}}

详细说明

运行

可使用标准Docker命令运行基于此镜像的容器,也可参考https://github.com/jdeathe/centos-ssh/blob/centos-7/docker-compose.yml%E7%A4%BA%E4%BE%8B%E3%80%82

生产环境中,建议选择示例中所示的特定发布标签。

使用scmi

对于高级用例,镜像内置安装程序(服务容器管理接口)https://github.com/jdeathe/centos-ssh/blob/centos-7/docs/scmi.md%E3%80%82

使用make

若已检出https://github.com/jdeathe/centos-ssh%E4%B8%94%E5%AE%89%E8%A3%85%E4%BA%86%60make%60%EF%BC%8CMakefile%E6%8F%90%E4%BE%9B%E6%9E%84%E5%BB%BA%E3%80%81%E5%AE%89%E8%A3%85%E3%80%81%E5%90%AF%E5%8A%A8%E3%80%81%E5%81%9C%E6%AD%A2%E7%AD%89%E7%9B%AE%E6%A0%87%EF%BC%8C%E8%BF%90%E8%A1%8C%60make help`查看说明。

使用环境变量

以下示例通过SSH_USER环境变量将默认SSH用户名“app-admin”(及对应主目录路径)覆盖为“centos”和“/home/centos”:

$ docker stop ssh.1 && \
  docker rm ssh.1; \
  docker run -d \
  --name ssh.1 \
  -p :22 \
  --env "SSH_USER=centos" \
  docker.xuanyuan.run/jdeathe/centos-ssh:2.6.1

要查看SSH_USER用户的sudo密码,可通过以下命令检查容器日志:

$ docker logs ssh.1

首次运行时,日志输出会显示SSH_USER指定用户的自动生成密码,示例日志片段:

2019-06-20 00:10:35,306 WARN No file matches via include "/etc/supervisord.d/*.ini"
...
================================================================================
SSH Details
--------------------------------------------------------------------------------
...
password : uIEqLkiacCvxaN45
...
user : app-admin
--------------------------------------------------------------------------------
0.516901
...

环境变量

运行时定义了多个环境变量,允许操作员自定义容器行为:

ENABLE_SSHD_BOOTSTRAP & ENABLE_SSHD_WRAPPER

可能需要阻止sshd-bootstrap脚本和/或sshd守护进程启动。例如,当以此Dockerfile为基础构建其他镜像时,可将ENABLE_SSHD_BOOTSTRAP和ENABLE_SSHD_WRAPPER设为false以减少最终容器中的运行进程数:

...
  --env "ENABLE_SSHD_BOOTSTRAP=false" \
  --env "ENABLE_SSHD_WRAPPER=false" \
...

ENABLE_SUPERVISOR_STDOUT

镜像已安装supervisor_stdout,可使supervisord控制的进程同时输出到日志文件和stdout。建议仅输出到stdout以最小化运行进程数。将ENABLE_SUPERVISOR_STDOUT设为“false”可阻止supervisor_stdout启动;若镜像日志输出需此功能,应设为“true”。

SSH_AUTHORIZED_KEYS

默认添加的SSH用户公钥不安全(便于使用已知私钥访问)。通过SSH_AUTHORIZED_KEYS可替换为其他公钥(或多个)。添加多个密钥时,建议对值进行base64编码,或结合绑定挂载文件、Docker Swarm配置等使用容器文件路径:

...
--env "SSH_AUTHORIZED_KEYS=
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAqmLedI2mEJimvIm1OzT1EYJCMwegL/jfsXARLnYkZvJlEHFYDmRgS+YQ+MA9PKHyriCPmVNs/6yVc2lopwPWioXt0+ulH/H43PgB6/4fkP0duauHsRtpp7z7dhqgZOXqdLUn/Ybp0rz0+yKUOBb9ggjE5n7hYyDGtZR9Y11pJ4TuRHmL6wv5mnj9WRzkUlJNYkr6X5b6yAxtQmX+2f33u2qGdAwADddE/uZ4vKnC0jFsv5FdvnwRf2diF/9AagDb7xhZ9U3hPOyLj31H/OUce4xBpGXRfkUYkeW8Qx+zEbEBVlGxDroIMZmHJIknBDAzVfft+lsg1Z06NCYOJ+hSew== another public key
"  \
...

注意:Mac OSX上的base64命令默认不换行编码文件,Linux上需使用-w选项防止80字符换行,如base64 -w 0 -i {{密钥路径}}。

...
  --env "SSH_AUTHORIZED_KEYS=$(
    cat ${HOME}/.ssh/id_rsa.pub ${HOME}/.ssh/another_id_rsa.pub | base64 -i -
  )" \
...

使用容器文件路径时,authorized_keys将从该路径读取:

...
  --env "SSH_AUTHORIZED_KEYS=/var/run/config/authorized_keys"
...

SSH_CHROOT_DIRECTORY

仅当SSH_USER_FORCE_SFTP设为true时适用。使用SFTP时,用户将被限制在ChrootDirectory中。值可包含占位符%h(替换为SSH_USER_HOME)和%u(替换为SSH_USER)。默认%h在多数情况下适用,但用户主目录内需有可写子目录。若未挂载卷到SSH用户主目录路径,会自动创建_data目录。如需用户可写主目录,可使用/chroot/%u等替代值,默认用户主目录路径将变为/chroot/app-admin/home/app-admin:

...
  --env "SSH_CHROOT_DIRECTORY=%h" \
...

SSH_INHERIT_ENVIRONMENT

默认重置SSH用户环境,Docker环境变量不可用。设置SSH_INHERIT_ENVIRONMENT=true可将Docker环境变量传递给SSH用户环境(部分值如SSH_USER_PASSWORD、HOME、HOSTNAME、PATH、TERM等会被移除以避免问题):

...
  --env "SSH_INHERIT_ENVIRONMENT=true" \
...

SSH_PASSWORD_AUTHENTICATION

默认禁用SSH密码认证,仅允许公钥/私钥认证(推荐配置)。若客户端无法使用密钥认证,可设SSH_PASSWORD_AUTHENTICATION=true启用密码认证:

...
  --env "SSH_PASSWORD_AUTHENTICATION=true" \
...

SSH_SUDO

首次运行时,SSH用户默认sudo规则为ALL=(ALL) ALL(需密码)。可通过SSH_SUDO限制命令或允许无密码sudo:

...
  --env "SSH_SUDO=ALL=(ALL) NOPASSWD:ALL" \
...

SSH_USER

首次运行时默认创建用户“app-admin”,可通过SSH_USER指定其他用户名:

...
  --env "SSH_USER=centos" \
...

SSH_USER_FORCE_SFTP

设SSH_USER_FORCE_SFTP=true可强制使用internal-sftp命令,阻止shell访问、移除sudo权限并限制用户到SSH_CHROOT_DIRECTORY。结合--volumes-from其他运行中容器,可允许访问应用数据卷(如设SSH_USER_HOME=/var/www/允许访问Apache容器数据卷):

...
  --env "SSH_USER_FORCE_SFTP=false" \
...

SSH_USER_HOME

首次运行时默认主目录为/home/%u(%u替换为SSH_USER值),可通过SSH_USER_HOME指定其他路径:

...
  --env "SSH_USER_HOME=/home/centos" \
...

SSH_USER_PASSWORD

首次运行时自动生成用户密码,可通过SSH_USER_PASSWORD指定特定密码。设为空字符串将自动生成密码(若SSH_SUDO未设为无密码所有命令,密码会显示在日志中):

...
  --env "SSH_USER_PASSWORD=Passw0rd!" \
...

设为有效容器文件路径时,将从文件读取值(结合Docker Swarm secrets等编排功能可安全设置):

...
  --env "SSH_USER_PASSWORD=/var/run/secrets/ssh_user_password" \
...

SSH_USER_PASSWORD_HASHED

设SSH_USER_PASSWORD_HASHED=true时,SSH_USER_PASSWORD值将被视为crypt SHA-512加盐密码哈希:

...
  --env "SSH_USER_PASSWORD_HASHED=true" \
  --env 'SSH_USER_PASSWORD=$6$pepper$g5/OhofGtHVo3wqRgVHFQrJDyK0mV9bDpF5HP964wuIkQ7MXuYq1KRTmShaUmTQW3ZRsjw2MjC1LNPh5HMcrY0'
...

生成crypt SHA-512密码哈希

生成密码Passw0rd!的哈希字符串:

$ docker run --rm jdeathe/centos-ssh \
  env PASSWORD=Passw0rd! \
  python -c "import crypt,os; print crypt.crypt(os.environ.get('PASSWORD'))"

SSH_USER_PRIVATE_KEY

为SSH_USER设置RSA私钥,建议结合编排系统的密钥功能(如Docker Swarm secrets)使用容器文件路径,或绑定挂载文件、base64编码值(无换行):

注意:SSH_USER_FORCE_SFTP=true(SFTP模式)时此设置无效。

设为有效容器文件路径时,从文件读取值:

...
  --env "SSH_USER_PRIVATE_KEY=/var/run/secrets/ssh_user_private_key"
...

注意:Mac OSX上的base64命令默认不换行编码文件,Linux上需使用-w选项防止80字符换行,如base64 -w 0 -i {{密钥路径}}。

...
  --env "SSH_USER_PRIVATE_KEY=$(
    base64 -i ${HOME}/.ssh/id_rsa
  )" \
...

SSH_USER_SHELL

首次运行时默认shell为“//bash”,可通过SSH_USER_SHELL指定其他shell(如“/s/nologin”阻止登录):

...
  --env "SSH_USER_SHELL=/bin/sh" \
...

SSH_USER_ID

通过SSH_USER_ID设置SSH_USER的UID:GID,非系统用户建议值≥500(默认500:500),2-499范围可能与系统账户冲突,适用于SFTP容器挂载现有容器数据卷时:

...
  --env "SSH_USER_ID=1000:1000" \
...

SYSTEM_TIMEZONE

设置基于区域的系统时区:

...
  --env "SYSTEM_TIMEZONE=Europe/London" \
...

使用SSH连接运行中的容器

禁用密码认证(默认)

注意:以下文档描述使用已知私钥连接的过程(默认不安全)。在本地测试环境外运行容器时,建议创建并使用替代的私钥/公钥对。

在主目录创建SSH所需权限的.ssh目录:

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 centos-ssh 镜像标签

docker pull docker.xuanyuan.run/jdeathe/centos-ssh:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull jdeathe/centos-ssh:<标签>

轩辕镜像配置手册

按平台快速找到配置文档

一键安装

一键安装 Docker

Linux Docker 一键安装

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Apple Container

macOS 原生容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

Unraid

Unraid NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

iKuai 镜像加速

宝塔面板

一键配置镜像源

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

版本功能对比

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 专业版 · 企业版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

账号

失败是否计费

manifest · blob · 计费

申请开发票(企业 / 个人)

企业 · 个人 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
jdeathe/centos-ssh
定价查看流量套餐与价格
博客Docker 镜像公告与技术博客
专业版 · 高速稳定拉取镜像
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
50GB 仅 ¥7/年
专业版 · 高速稳定拉取镜像
50GB 仅 ¥7/年
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
用户协议·隐私政策·增值电信业务经营许可证:浙B2-20261007·©2024-2026 源码跳动©2024-2026 杭州源码跳动科技有限公司·商务合作:点击复制邮箱

更多 centos-ssh 镜像推荐

jdeathe/centos-ssh-mysql logo

jdeathe/centos-ssh-mysql

jdeathe
基于CentOS的MySQL Community Server镜像,支持自动密码生成、自定义初始化SQL,默认禁用SSH,通过Supervisor管理mysqld服务,适用于快速部署MySQL数据库。
11 次收藏1万+ 次下载
6 年前更新
jdeathe/centos-ssh-apache-php logo

jdeathe/centos-ssh-apache-php

jdeathe
基于CentOS的Docker镜像,集成Apache Web服务器与PHP环境,支持SSL、MPM模式、PHP配置等自定义,适用于Web应用部署。
31 次收藏1万+ 次下载
6 年前更新
jdeathe/centos-ssh-redis logo

jdeathe/centos-ssh-redis

jdeathe
Redis - CentOS.
970 次下载
6 年前更新
jdeathe/composer logo

jdeathe/composer

jdeathe
Docker build of Alpine - PHP CLI / Composer.
1 次收藏518 次下载
8 年前更新
joshhsoj1902/centos-ssh-docker logo

joshhsoj1902/centos-ssh-docker

joshhsoj1902
基于CentOS系统的镜像,集成SSH服务与Docker工具,支持远程登录容器并进行Docker容器相关操作。
1万+ 次下载
6 年前更新

查看更多 centos-ssh 相关镜像