I. 下载安装

点击 GitHub 下载对应系统安装包。

1.1 Windows 安装

【Win + X】打开“PowerShell(管理员)” ,进入指定目录(如下示例):

1
cd D:\Portable\SFTPGo

1.1.1 手动运行 SFTPGo

1
.\sftpgo.exe serve

1.1.2 将 SFTPGo 注册为服务

在 Windows 上,您可以将 SFTPGo 注册为 Windows 服务。请查看 CLI 用法以了解如何执行此操作:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
PS> sftpgo.exe service --help
Manage SFTPGo Windows Service

Usage:
  sftpgo service [command]

Available Commands:
  install     Install SFTPGo as Windows Service
  reload      Reload the SFTPGo Windows Service sending a "paramchange" request
  rotatelogs  Signal to the running service to rotate the logs
  start       Start SFTPGo Windows Service
  status      Retrieve the status for the SFTPGo Windows Service
  stop        Stop SFTPGo Windows Service
  uninstall   Uninstall SFTPGo Windows Service

Flags:
  -h, --help   help for service

Use "sftpgo service [command] --help" for more information about a command.

注册 sftpgo 为服务

1
.\sftpgo.exe service install

启动 sftpgo 服务

1
.\sftpgo.exe service start

1.1.3 防火墙开放相关服务端口

1
New-NetFirewallRule -DisplayName "AllowInboundSFTPGo" -Direction Inbound -LocalPort 2022 -Protocol TCP -Action Allow

若要修改默认管理端口(8080)或 SFTP 服务端口(2022),请在 SFTPGo 安装目录修改

1
..\SFTPGo\sftpgo.json

1.2 YUM 存储库安装

YUM 资料档案库支持基于 Red Hat 的通用分发(参考文档:GitHub )。

  1. 创建 SFTPGo 存储库:
1
2
ARCH=`uname -m` \
curl -sS https://ftp.osuosl.org/pub/sftpgo/yum/${ARCH}/sftpgo.repo | sudo tee /etc/yum.repos.d/sftpgo.repo
  1. 重新加载软件包数据库并安装 SFTPGo:
1
2
sudo yum update
sudo yum install sftpgo
  1. 启动 SFTPGo 服务并使其在系统启动时启动
1
sudo systemctl enable sftpgo --now
  1. 防火墙开放相关服务端口
1
2
3
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --permanent --zone=public --add-port=2022/tcp
sudo firewall-cmd --reload
  1. 若要修改默认管理端口(8080)或 SFTP 服务端口(2022),请在如下路径修改
1
/etc/sftpgo/sftpgo.json

1.3 macOS 安装

将 SFTPGo 作为服务运行的最简单方法是从 Homebrew Formula 安装它。

II. 初始配置

在使用 SFTPGo 之前,你需要创建一个管理账户(如 root 用户),因此在网络浏览器中打开 http://127.0.0.1:8080/web/admin ,如果SFTPGo不是在 localhost 上运行,就用适当的 IP 地址替换 127.0.0.1 。

2.1 快速使用

在 Users 菜单下:

  1. 创建用户和密码,如:sftp
  2. [Filesystem] > [Home Dir] 框输入系统中要共享目录的绝对路径,如:D:\Downloads
  3. [ACLs] > [Permissions] 中可配置用户访问权限,默认为 * 即“完全控制权限”;
  4. 点击最下方 【Submit】 完成配置,即可通过 SFTP 客户端下载文件。

2.2 进阶配置

2.2.1 Folders

  1. 创建待共享目录,如:Downloads
  2. [Filesystem] > [Home Dir] 框输入系统中要共享目录的绝对路径,如:D:\Downloads
  3. 点击最下方 【Submit】 完成配置。

2.2.2 Groups

  1. 创建组,如: panda
  2. [Virtual folders] 创建虚拟目录名,如 :MyDownloads 映射到 Downloads 目录,或直接 / 映射到根目录;
  3. [ACLs] > [Per-directory permissions] 下配置每个目录单独权限,如 /MyDownloads/Software 配置的是 D:\Downloads\Software 目录访问权限,或直接 /MyDownloads配置的是 D:\Downloads 目录访问权限;
  4. 点击最下方 【Submit】 完成配置。

2.2.3 Users

  1. 创建用户和密码,如:sftp
  2. 在** [Groups] > [Primary group]** 选择在 Groups 中创建的 panda组。

2.3 启用 HTTPS

参考文档:SFTPGo

2.3.1 为 SFTPGo Web UI 和 REST API 启用 HTTPS

可以通过创建包含以下内容的文件来使用环境变量。/etc/sftpgo/env.d/httpd.env

1
2
3
4
SFTPGO_HTTPD__BINDINGS__0__PORT=9443
SFTPGO_HTTPD__BINDINGS__0__ENABLE_HTTPS=1
SFTPGO_HTTPD__BINDINGS__0__CERTIFICATE_FILE="/var/lib/sftpgo/certs/sftpgo.com.crt"
SFTPGO_HTTPD__BINDINGS__0__CERTIFICATE_KEY_FILE="/var/lib/sftpgo/certs/sftpgo.com.key"

2.3.2 修改相关文件权限

1
2
3
4
# 修改环境变量权限
chown sftpgo:sftpgo /etc/sftpgo/env.d/httpd.env
# 修改SSL证书权限
chown -R sftpgo:sftpgo /var/lib/sftpgo/certs/

重新启动 SFTPGo 以应用更改。HTTPS 服务现在在端口上可用,注意新绑定端口为 9443

III. 参考文档

介绍文档:SFTPGo GitHub