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

官方QQ群: 13763429

轩辕镜像
镜像详情
jmcombs/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
jmcombs/sftp

sftp 镜像详细信息

sftp 镜像标签列表

sftp 镜像使用说明

sftp 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

atmoz/sftp的分支版本,新增SCP支持与多平台适配,提供SFTP服务。
4 收藏0 次下载activejmcombs
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

sftp 镜像详细说明

sftp 使用指南

sftp 配置说明

sftp 官方文档

SFTP Docker镜像文档

镜像概述

SFTP Docker镜像是一个基于OpenSSH的轻量级SFTP(SSH文件传输协议)和SCP服务器,支持多用户配置、卷挂载和自定义SSH密钥。该镜像为atmoz/sftp的分支版本,新增了SCP支持和多平台兼容性,适用于安全、便捷的文件传输场景。

支持的标签

标签说明Dockerfile链接
debian基于Debian系统,默认标签(latest)Dockerfile
alpine基于Alpine系统,体积更小Dockerfile-alpine

核心功能与特性

  1. 多协议支持:兼容SFTP(SSH文件传输协议)和SCP(安全复制协议),基于OpenSSH实现。
  2. 灵活的用户管理:支持通过命令参数、环境变量或配置文件定义用户,支持密码加密和SSH密钥登录。
  3. 权限控制:可自定义用户UID/GID,确保挂载卷的权限与主机文件系统一致。
  4. 数据持久化:支持卷挂载,用户主目录可映射至主机目录或Docker卷,确保数据持久化。
  5. 安全增强:支持自定义SSH主机密钥,避免容器重建导致的MITM警告;支持只读挂载和目录权限控制。
  6. 自定义扩展:可通过/etc/sftp.d/目录执行自定义启动脚本,实现高级配置(如绑定挂载、权限调整等)。
  7. 多平台支持:适配多种架构,满足不同环境需求。

适用场景

  • 开发/测试环境:本地或服务器间的文件传输与共享。
  • 多用户文件共享:为不同用户配置隔离的文件空间,支持读写权限控制。
  • 自动化备份:作为SCP/SFTP服务端接收自动备份数据。
  • CI/CD流水线:在构建流程中传输构建产物或配置文件。

使用方法与配置说明

用户配置

用户可通过以下三种方式定义,语法格式为:
user:pass[:e][:uid[:gid[:dir1[,dir2]...]]]

参数说明
user用户名(必填)
pass密码(明文或加密,若加密需添加:e标记)
e可选,标记密码为加密格式(如使用crypt生成的哈希)
uid可选,用户ID(自定义以匹配主机文件权限)
gid可选,组ID
dir可选,用户主目录下的子目录列表(自动创建,具有写权限)

示例:foo:pass:1001:100:upload,docs 表示用户foo,密码pass,UID=1001,GID=100,自动创建upload和docs子目录。

配置方式

1. 命令参数定义用户

直接在启动命令中指定用户,多个用户用空格分隔:

docker run ... jmcombs/sftp "user1:pass1:1001" "user2:pass2:1002:100:data"

2. 环境变量定义用户

通过SFTP_USERS环境变量传入用户配置:

docker run -e SFTP_USERS="user1:pass1:1001 user2:pass2:1002" ... jmcombs/sftp

3. 配置文件定义用户

挂载包含用户配置的文件至/etc/sftp/users.conf(只读权限):

docker run -v /host/users.conf:/etc/sftp/users.conf:ro ... jmcombs/sftp

配置文件格式(每行一个用户):

user1:pass1:1001:100:upload  # 用户1:密码明文,UID=1001,GID=100,创建upload目录
user2:$1$xyz$abc:e:1002      # 用户2:密码加密(带:e标记),UID=1002

卷挂载注意事项

  • 用户目录隔离:用户被chroot限制在其主目录(/home/<user>),需通过子目录实现文件上传(用户无法直接在主目录创建文件)。
  • 权限匹配:若需修改主机文件系统权限,需手动指定用户UID/GID(与主机一致)。
  • SSH主机密钥:为避免容器重建导致的主机指纹变化,建议挂载自定义密钥文件(/etc/ssh/ssh_host_*)。

部署示例

1. 最简单示例

创建用户foo(密码pass),自动生成upload目录,映射容器22端口至主机22端口:

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

2. 共享主机目录(含Docker Compose)

将主机目录挂载至用户foo的upload子目录,指定UID=1001以匹配主机权限:

Docker命令:

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

Docker Compose配置:

version: "3"
services:
  sftp:
    image: jmcombs/sftp
    volumes:
      - /host/upload:/home/foo/upload  # 挂载主机目录
    ports:
      - "2222:22"                      # 端口映射
    command: foo:pass:1001             # 用户配置

登录方式:使用SFTP客户端连接主机2222端口:

sftp -P 2222 foo@<主机IP>

3. 通过配置文件管理多用户

挂载用户配置文件,批量定义用户:

  1. 主机创建users.conf:
foo:123:1001:100:data  # 用户foo,密码123,UID=1001,GID=100,创建data目录
bar:456:1002:100:docs  # 用户bar,密码456,UID=1002,GID=100,创建docs目录
  1. 启动容器:
docker run \
  -v /host/users.conf:/etc/sftp/users.conf:ro \  # 挂载配置文件(只读)
  -v sftp_data:/home \                           # 挂载卷存储用户数据
  -p 2222:22 -d jmcombs/sftp

4. 加密密码登录

使用加密密码(需添加:e标记),避免明文传输:

  1. 生成加密密码(使用Python crypt模块):
docker run --rm python:alpine python -c "import crypt; print(crypt.crypt('YOUR_PASSWORD'))"

输出示例:$1$0G2g0GSt$ewU0t6GXG15.0hWoOX8X9.

  1. 启动容器(使用单引号包裹加密密码):
docker run \
  -v /host/share:/home/foo/share \
  -p 2222:22 -d jmcombs/sftp \
  'foo:$1$0G2g0GSt$ewU0t6GXG15.0hWoOX8X9.:e:1001'  # :e标记表示密码已加密

5. SSH密钥登录(无密码)

挂载公钥文件至用户.ssh/keys/目录,自动添加至authorized_keys:

docker run \
  -v /host/id_rsa.pub:/home/foo/.ssh/keys/id_rsa.pub:ro \  # 挂载公钥
  -v /host/share:/home/foo/share \
  -p 2222:22 -d jmcombs/sftp \
  foo::1001  # 密码留空(仅允许密钥登录),UID=1001

6. 自定义SSH主机密钥

挂载自定义主机密钥,避免容器重建导致指纹变化:

  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密钥
  1. 启动容器时挂载密钥:
docker run \
  -v /host/ssh_host_ed25519_key:/etc/ssh/ssh_host_ed25519_key \
  -v /host/ssh_host_rsa_key:/etc/ssh/ssh_host_rsa_key \
  -v /host/share:/home/foo/share \
  -p 2222:22 -d jmcombs/sftp \
  foo::1001

7. 执行自定义启动脚本

将脚本挂载至/etc/sftp.d/目录,容器启动时自动执行(如绑定挂载目录):

  1. 创建脚本/host/sftp.d/bindmount.sh:
#!/bin/bash
# 绑定挂载示例:将/data/common共享至多个用户目录

function bindmount() {
  mkdir -p "$2"
  mount --bind "$1" "$2"  # 绑定挂载源目录至目标目录
}

bindmount /data/common /home/dave/common  # 用户dave的common目录
bindmount /data/common /home/peter/common # 用户peter的common目录
bindmount /data/docs /home/peter/docs --read-only  # 只读挂载docs目录
  1. 启动容器(需添加CAP_SYS_ADMIN权限):
docker run \
  --cap-add=CAP_SYS_ADMIN \  # 允许mount系统调用
  -v /host/sftp.d:/etc/sftp.d:ro \  # 挂载脚本目录
  -v /data:/data \  # 挂载源数据目录
  -p 2222:22 -d jmcombs/sftp \
  dave::1001 peter::1002  # 创建用户dave和peter

Debian与Alpine版本差异

特性Debian版本Alpine版本
镜像大小较大(约200MB)极小(约20MB,小10倍)
OpenSSH版本稳定,仅包含安全修复和bugfix版本更新较快(6个月发布周期)
适用场景稳定性优先的生产环境资源受限环境(如边缘设备)

OpenSSH版本说明

OpenSSH版本取决于基础镜像的包管理系统:

  • Debian:版本由Debian***维护,注重稳定性,仅更新安全补丁。
  • Alpine:版本随Alpine滚动更新,可能包含较新功能。

可通过以下链接查询具体版本:

  • Alpine OpenSSH包列表
  • Debian OpenSSH Server包列表

每日构建

镜像每日自动构建,确保集成基础镜像和OpenSSH的最新安全更新。

查看更多 sftp 相关镜像 →
atmoz/sftp logo
atmoz/sftp
by atmoz
易于使用的SFTP服务器
5171B+ pulls
上次更新:18 天前
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.