!GitHub stars !Docker Stars
!https://raw.githubusercontent.com/Corilus/sftp/master/openssh.png "Powered by OpenSSH"
基于OpenSSH的SFTP(SSH文件传输协议)服务器镜像,提供安全的文件传输服务。支持通过多种方式定义用户,可灵活配置权限、挂载存储卷,并支持完整的rsyslog日志功能。适用于需要安全文件共享、权限控制及持久化存储的场景。提供Debian(稳定)和Alpine(轻量)两种基础镜像供选择。
SFTP_USERS)或配置文件(/etc/sftp/users.conf)定义用户/etc/sftp.d/目录挂载脚本,容器启动时自动执行用户配置遵循以下语法:
user:pass[:e][:uid[:gid[:dir1[,dir2]...]]]
user: 用户名(必填)pass: 密码(为空时仅支持密钥登录):e: 标记密码为加密格式(可选)uid: 用户ID(可选,默认自动分配)gid: 用户组ID(可选,默认与UID相同)dir1[,dir2]: 自动创建的子目录(可选,多个目录用逗号分隔)/home/user/upload)/home目录,需确保用户主目录下至少有一个可写子目录(用户无法直接在主目录创建文件)/etc/ssh/ssh_host_*文件(如ssh_host_rsa_key、ssh_host_ed25519_key)SFTP_USERS: 定义用户的环境变量,格式与配置文件相同(如"foo:pass:1001:100:upload,docs")bashdocker run -p 22:22 -d corilus/sftp foo:pass:::upload
foo,密码passupload目录(位于/home/foo/upload)sftp foo@<host-ip>登录bashdocker run \ -v /host/path/upload:/home/foo/upload \ -p 2222:22 -d corilus/sftp \ foo:pass:1001
/host/path/upload目录挂载到用户foo的upload目录sftp -P 2222 foo@<host-ip>登录yamlsftp: image: corilus/sftp volumes: - /host/path/upload:/home/foo/upload ports: - "2222:22" command: foo:pass:1001:100:upload,docs
users.conf:foo:123:1001:100:upload bar:456:1002:100:docs,backup
bashdocker run \ -v /host/path/users.conf:/etc/sftp/users.conf:ro \ -v sftp_data:/home \ -p 2222:22 -d corilus/sftp
sftp_data为数据卷,持久化存储用户主目录bashdocker run --rm python:alpine python -c "import crypt; print(crypt.crypt('YOUR_PASSWORD'))"
bashdocker run \ -v /host/path/share:/home/foo/share \ -p 2222:22 -d corilus/sftp \ 'foo:$1$0G2g0GSt$ewU0t6GXG15.0hWoOX8X9.:e:1001'
bashdocker run \ -v /host/path/id_rsa.pub:/home/foo/.ssh/keys/id_rsa.pub:ro \ -v /host/path/share:/home/foo/share \ -p 2222:22 -d corilus/sftp \ foo::1001
.ssh/keys/目录(所有.pub文件会自动追加到authorized_keys)bashssh-keygen -t ed25519 -f ssh_host_ed25519_key < /dev/null ssh-keygen -t rsa -b 4096 -f ssh_host_rsa_key < /dev/null
bashdocker run \ -v /host/path/ssh_host_ed25519_key:/etc/ssh/ssh_host_ed25519_key \ -v /host/path/ssh_host_rsa_key:/etc/ssh/ssh_host_rsa_key \ -v /host/path/share:/home/foo/share \ -p 2222:22 -d corilus/sftp \ foo::1001
bindmount.sh:bash#!/bin/bash # 挂载共享目录到多用户 home mount --bind /data/common /home/dave/common mount --bind /data/common /home/peter/common --read-only
CAP_SYS_ADMIN权限):bashdocker run \ --cap-add=SYS_ADMIN \ -v /host/path/bindmount.sh:/etc/sftp.d/bindmount.sh \ -v /host/data:/data \ -p 2222:22 -d corilus/sftp \ dave::1001 peter::1002
| 特性 | Debian版本 | Alpine版本 |
|---|---|---|
| 镜像体积 | 较大(约100MB+) | 较小(约10MB+) |
| 稳定性 | 高(仅接受bugfix和安全更新) | 较高(6个月发布周期) |
| OpenSSH版本 | 较低(稳定版) | 较高(最新版) |
| 适用场景 | 生产环境,追求稳定性 | 资源受限环境,追求轻量 |
注:镜像构建时间可能延迟OpenSSH官方更新,建议通过官方仓库确认具体版本,或自行克隆源码构建。
以下是 corilus/sftp 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务