docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Docke之SFTP服务器

Docker部署常见应用之SFTP服务器详解

作者:weixin_44585288

这篇文章主要介绍了Docker部署常见应用之SFTP服务器,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

简介

atmoz/sftp 是一个基于 Docker 的 SFTP 服务镜像,它使用 OpenSSH 来提供 SFTP 服务。

这个镜像支持创建单个或多个用户的 SFTP 访问,并允许用户通过 SFTP 协议安全地共享文件。

它是一个轻量级的解决方案,可以快速部署 SFTP 服务器.使用时,可以通过 Docker 命令行参数来指定 SFTP 用户名、密码和上传目录等配置。

Dockers部署

单用户

以下是使用Docker部署atmoz/sftp服务的一般步骤:

安装Docker:确保你的系统上已经安装了Docker。

拉取Docker镜像:使用以下命令从Docker Hub拉取atmoz/sftp镜像:

sudo docker pull atmoz/sftp

创建文件挂载目录

sudo mkdir /data/docker/atmoz/upload

启动Docker容器

使用以下命令启动SFTP服务器,允许用户foo通过密码pass访问,并且可以操作宿主机上/data/atmoz/upload目录中的内容。同时,SFTP服务将在后台运行,并且可以通过宿主机的2222端口进行访问。:

sudo docker run \
 -d \
 --name atmoz-sftp-server \
 -p 2222:22 \
 -v /data/docker/atmoz/upload:/home/foo/upload \
 atmoz/sftp foo:pass:1001

这条docker run命令是用来启动一个名为atmoz/sftp的Docker容器,它将作为一个SFTP服务器运行。

下面是命令各部分的解释:

综上所述,这条命令的作用是启动一个SFTP服务器,允许用户foo通过密码pass访问,并且可以操作宿主机上/data/atmoz/upload目录中的内容。同时,SFTP服务将在后台运行,并且可以通过宿主机的2222端口进行访问。

连接到SFTP服务器

使用SFTP客户端连接到你的SFTP服务器。例如,使用命令行工具sftp

sftp -P 2222 foo@atmoz-sftp-server-ip

这里atmoz-sftp-server-ip 容器所在服务器的IP地址。密码为pass

多用户

创建配置文件

/data/atmoz/conf 目录下创建配置文件user.sconf

创建配置文件目录

sudo mkdir /data/docker/atmoz/conf

创建users.conf文件, 增加下面内容:

foo:123:1001:100
bar:abc:1002:100
baz:xyz:1003:100

启动容器

sudo docker run \
 -d \
 --name atmoz-sftp-server \
 --privileged=true \
 -p 2222:22 \
 -v mySftpVolume:/home \
 -v /data/docker/atmoz/config/users.conf:/etc/sftp/users.conf:ro \
 atmoz/sftp

注意 -v mySftpVolume:/home 会在自动生成mySftpVolume 目录。 此处不能自定义目录, 自定义目录无法登录。

用户信息加密

crypt加密

命令行运行以下命令, 对密码加密,

python -c "import crypt; print(crypt.crypt('YOUR_PASSWORD'))"

这里YOUR_PASSWORD替换为你的密码

启动容器

sudo docker run \
  -d \
  --name atmoz-sftp-server \
  -p 2222:22 \
  -v /data/docker/atmoz/upload:/home/foo/upload \
  atmoz/sftp \
  'foo:<encrypted-password>:e:1001'

<encrypted-password>替换为加密后的密码。

注意: :e 表示前面为加密密码, 同时'<user>:<encrypted-password>:e:1001'要用单引号括起来。

使用SSH密钥认证

生成密钥

# 密钥存放创建目录
sudo mkdir -p /data/docker/atmoz/ssh
# 生成密钥
sudo ssh-keygen -t rsa -b 4096 -f /data/docker/atmoz/ssh/my_rsa_key

启动容器

sudo docker run \
  -d \
  --name atmoz-sftp-server \
  -p 2222:22 \
  -v /data/docker/atmoz/ssh/my_rsa_key.pub:/home/foo/.ssh/keys/my_rsa_key.pub:ro \
  -v /data/docker/atmoz/upload:/home/foo/upload \
  atmoz/sftp \
  foo::1001

连接到SFTP服务器

sftp -i /path/to/your/private_key -P 2222 foo@atmoz-sftp-server-ip

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文