轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
atmoz/sftp
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

sftp Docker 镜像下载 - 轩辕镜像

sftp 镜像详细信息和使用指南

sftp 镜像标签列表和版本信息

sftp 镜像拉取命令和加速下载

sftp 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

sftp
atmoz/sftp
自动构建

sftp 镜像详细信息

sftp 镜像标签列表

sftp 镜像使用说明

sftp 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

易于使用的SFTP服务器
517 收藏0 次下载activeatmoz镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

sftp 镜像详细说明

sftp 使用指南

sftp 配置说明

sftp 官方文档

SFTP 镜像文档

概述

SFTP 镜像是一个基于 OpenSSH 的轻量级、易用的 SSH 文件传输协议(SFTP)服务器。它提供安全的文件传输能力,支持多种用户配置方式和灵活的卷挂载,适用于个人、团队或服务器间的安全文件共享场景。

核心功能与特性

  • 多方式用户定义:支持通过命令参数、SFTP_USERS 环境变量或配置文件(/etc/sftp/users.conf)定义用户
  • 自定义用户属性:可指定密码(明文或加密)、UID、GID,以及自动创建用户主目录下的子目录
  • 灵活卷挂载:用户被限制在其主目录(chroot),支持挂载主机目录或数据卷到用户主目录内
  • SSH 密钥认证:支持通过挂载公钥文件实现无密码登录,提升安全性
  • 自定义脚本执行:容器启动时自动运行 /etc/sftp.d/ 目录下的脚本,支持自定义初始化逻辑
  • 多基础镜像支持:提供 Debian(稳定,体积较大)和 Alpine(轻量,版本较新)两种版本

使用场景与适用范围

  • 个人或团队间的安全文件传输与共享
  • 服务器与客户端之间的加密文件同步
  • 开发/测试环境中容器与主机的文件交换
  • 需要限制用户访问范围的文件服务(如仅允许访问特定子目录)
  • 需自定义用户权限与目录结构的文件存储服务

支持的标签及对应 Dockerfile 链接

  • debian, latest (Dockerfile)
    !Docker Image Size (debian)
  • alpine (Dockerfile)
    !Docker Image Size (alpine)

使用方法

用户定义

支持三种用户定义方式,语法统一为:
user:pass[:e][:uid[:gid[:dir1[,dir2]...]]]

字段说明
user用户名(必填)
pass密码(必填,若使用密钥登录可留空,格式为 user::uid...)
:e可选标记,指示密码为加密格式(如 MD5 加密)
uid可选用户 ID,用于匹配主机文件系统权限
gid可选用户组 ID,用于匹配主机文件系统权限
dir1...可选子目录列表,将在用户主目录下自动创建并赋予写权限(若不存在)

定义方式:

  1. 命令参数:直接在 docker run 或 docker-compose 的 command 中指定用户
  2. 环境变量:通过 SFTP_USERS 环境变量定义(格式同上)
  3. 配置文件:挂载文件到 /etc/sftp/users.conf(每行一个用户,格式同上)

卷挂载

  • 用户主目录限制:用户被 chroot 到其主目录(/home/<user>),无法访问主目录外的文件
  • 数据持久化:建议挂载主机目录或数据卷到用户主目录内(如 /home/foo/upload),避免直接挂载 /home(用户无法在主目录根目录创建文件)
  • 主机密钥挂载:为保持服务器指纹一致性,可挂载主机 SSH 密钥文件(/etc/ssh/ssh_host_*)

环境变量

变量名说明
SFTP_USERS定义用户,格式同命令参数(如 SFTP_USERS="foo:pass:1001 bar:abc:1002")

使用示例

最简单的 docker run 示例

docker run -p 22:22 -d atmoz/sftp foo:pass:::upload

说明:

  • 创建用户 foo,密码 pass,自动在其主目录下创建 upload 子目录
  • 容器 SSH 端口(22)映射到主机 22 端口,可通过 sftp foo@<主机IP> 登录并上传文件到 upload 目录

共享主机目录(自定义 UID)

挂载主机目录到用户主目录,并指定 UID 以匹配主机权限:

docker run \
    -v /host/path/upload:/home/foo/upload \  # 挂载主机目录到用户子目录
    -p 2222:22 -d atmoz/sftp \              # 映射容器 22 端口到主机 2222 端口
    foo:pass:1001                           # 用户 foo,密码 pass,UID=1001

使用 Docker Compose

sftp:
    image: atmoz/sftp
    volumes:
        - /host/path/upload:/home/foo/upload  # 挂载主机目录
    ports:
        - "2222:22"                           # 端口映射
    command: foo:pass:1001                    # 用户定义(格式:user:pass:uid)

登录方法:

通过 OpenSSH 客户端连接:

sftp -P 2222 foo@<主机IP>  # -P 指定主机端口(2222),foo 为用户名

通过配置文件定义用户

将用户信息存储在配置文件中,便于管理多用户:

  1. 创建主机配置文件 /host/path/users.conf:

    foo:123:1001:100    # 用户 foo,密码 123,UID=1001,GID=100
    bar:abc:1002:100    # 用户 bar,密码 abc,UID=1002,GID=100
    baz:xyz:1003:100    # 用户 baz,密码 xyz,UID=1003,GID=100
    
  2. 启动容器:

    docker run \
        -v /host/path/users.conf:/etc/sftp/users.conf:ro \  # 只读挂载配置文件
        -v sftp_data:/home \                               # 挂载数据卷存储用户主目录
        -p 2222:22 -d atmoz/sftp
    

使用加密密码

通过 :e 标记加密密码(需提前生成加密字符串):

docker run \
    -v /host/path/share:/home/foo/share \
    -p 2222:22 -d atmoz/sftp \
    'foo:$1$0G2g0GSt$ewU0t6GXG15.0hWoOX8X9.:e:1001'  # 加密密码(MD5格式),UID=1001

生成加密密码:

使用 atmoz/makepasswd 工具生成 MD5 加密密码:

echo -n "your-password" | docker run -i --rm atmoz/makepasswd --crypt-md5 --clearfrom=-

SSH 密钥登录(无密码)

通过挂载公钥文件实现密钥认证(无需密码):

docker 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 atmoz/sftp \
    foo::1001  # 密码留空(仅允许密钥登录),UID=1001

说明:

  • 公钥需挂载到用户主目录下的 .ssh/keys/ 目录(容器会自动将所有公钥追加到 .ssh/authorized_keys)
  • 不可直接挂载 .ssh/authorized_keys 文件(OpenSSH 要求该文件权限为 600,直接挂载可能权限错误)

自定义 SSH 主机密钥(推荐)

默认容器会自动生成 SSH 主机密钥,若需避免重建容器时用户收到 MITM 警告,可挂载自定义主机密钥:

  1. 生成主机密钥(主机执行):

    ssh-keygen -t ed25519 -f ssh_host_ed25519_key < /dev/null  # Ed25519 密钥
    ssh-keygen -t rsa -b 4096 -f ssh_host_rsa_key < /dev/null   # RSA 密钥(4096位)
    
  2. 启动容器时挂载密钥:

    docker 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 atmoz/sftp \
        foo::1001
    

执行自定义脚本

容器启动时自动运行 /etc/sftp.d/ 目录下的脚本,用于自定义初始化(如绑定挂载目录):

  1. 创建脚本 /host/path/bindmount.sh:

    #!/bin/bash
    # 绑定挂载示例:将主机目录挂载到用户子目录
    
    function bindmount() {
        if [ -d "$1" ]; then
            mkdir -p "$2"
        fi
        mount --bind $3 "$1" "$2"  # $3 为可选参数(如 --read-only)
    }
    
    # 绑定挂载(需容器开启 CAP_SYS_ADMIN 权限)
    bindmount /data/common /home/dave/common
    bindmount /data/docs /home/peter/docs --read-only  # 只读挂载
    
  2. 启动容器(需添加 --cap-add=SYS_ADMIN 权限):

    docker run \
        --cap-add=SYS_ADMIN \  # 允许使用 mount 命令
        -v /host/path/bindmount.sh:/etc/sftp.d/bindmount.sh \
        -v /host/data:/data \   # 挂载主机数据目录
        -p 2222:22 -d atmoz/sftp \
        dave::1001 peter::1002
    

Debian 与 Alpine 版本的区别

特性Debian 版本Alpine 版本
体积较大(约 200MB+)极小(约 20MB+,比 Debian 小 10 倍)
稳定性高(仅修复 bug 和安全问题,发布周期约 2 年)较快(发布周期约 6 个月,版本更新频繁)
OpenSSH 版本较旧但稳定较新(随 Alpine 发行版更新)

选择建议:追求稳定性选 Debian,追求轻量和新版本选 Alpine。

OpenSSH 版本说明

OpenSSH 版本取决于基础镜像的发行版:

  • Alpine 版本:查看 Alpine 官方包列表
  • Debian 版本:查看 Debian 官方包列表

注意:镜像构建延迟可能导致 OpenSSH 版本略滞后于基础镜像官方包(通常 1-5 天),如需精确版本可手动克隆源码构建。

查看更多 sftp 相关镜像 →
writl/sftp logo
writl/sftp
by writl
安全可配置的SFTP服务器Docker容器,支持文件传输,可自定义用户ID和组ID。
151M+ pulls
上次更新:7 个月前
corilus/sftp logo
corilus/sftp
by corilus
安全共享文件,支持完整的rsyslog日志功能,基于atmoz/sftp分支开发
11M+ pulls
上次更新:4 个月前

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 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 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.