更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 鸿蒙开发Linux教程 > 在Linux系统上安装SFTPGo的方法

在Linux系统上安装SFTPGo的方法

更新时间:2023-02-12 16:15:53浏览次数:896+次

本文介绍如何在Linux系统上安装SFTPGo的方法。

针对Ubuntu发行版,使用PPA安装SFTPGo

有一个PPA提供了当前支持的SFTPGo版本。此PPA可以添加到您的Ubuntu系统。

首先更新APT包索引:

sudo apt update

然后安装所需的软件包依赖项:

sudo apt install software-properties-common

现在添加SFTPGo PPA:

sudo add-apt-repository ppa:sftpgo/sftpgo

sudo apt-get update

添加PPA后,可以使用以下命令在Ubuntu上安装SFTPGo:

sudo apt install sftpgo

依赖关系树:

The following NEW packages will be installed:

  sftpgo

0 upgraded, 1 newly installed, 0 to remove and 84 not upgraded.

Need to get 9,871 kB of archives.

After this operation, 41.0 MB of additional disk space will be used.

Get:1 http://ppa.launchpad.net/sftpgo/sftpgo/ubuntu focal/main amd64 sftpgo amd64 2.2.2-1ppa1 [9,871 kB]

Fetched 9,871 kB in 0s (30.9 MB/s)

Selecting previously unselected package sftpgo.

安装成功后,服务将自动启动,验证状态如下:

$ systemctl status sftpgo

sftpgo.service - SFTPGo Server

使用.RPM和.DEB包安装SFTPGo

每个版本都有为SFTPGo构建的DEB和RPM包。这些软件包可以在SFTPGo Github发布页面上找到,地址在https://github.com/drakkan/sftpgo/releases。

首先将最新版本保存在变量中:

VER=$(curl -s https://api.github.com/repos/drakkan/sftpgo/releases/latest|grep tag_name | cut -d '"' -f 4 |sed 's/v//g')

下载适合您系统的软件包,如下所示:

1]、在Debian/Ubuntu上

##For AMD64##

wget https://github.com/drakkan/sftpgo/releases/download/v$VER/sftpgo_$VER-1_amd64.deb

##For ARM64##

wget https://github.com/drakkan/sftpgo/releases/download/v$VER/sftpgo_$VER-1_arm64.deb

##For PPC64##

wget https://github.com/drakkan/sftpgo/releases/download/v$VER/sftpgo_$VER-1_ppc64el.deb

2]、在RHEL/CentOS/Rocky Linux/Alma Linux上

##For x86_64##

wget https://github.com/drakkan/sftpgo/releases/download/v$VER/sftpgo-$VER-1.x86_64.rpm

##For ARMV7Hl##

wget https://github.com/drakkan/sftpgo/releases/download/v$VER/sftpgo-$VER-1.armv7hl.rpm

##For PPC64##

wget https://github.com/drakkan/sftpgo/releases/download/v$VER/sftpgo-$VER-1.ppc64le.rpm

##For AARCH64##

wget https://github.com/drakkan/sftpgo/releases/download/v$VER/sftpgo-$VER-1.aarch64.rpm

下载正确的软件包后,按以下步骤继续安装:

##在Debian/Ubuntu上##

sudo apt install ./sftpgo_$VER-1_*.deb

##在RHEL/CentOS/Rocky Linux/Alma Linux上##

sudo rpm -i sftpgo-$VER-1.*.rpm

安装后,启动并启用STPGo:

sudo systemctl enable --now sftpgo

检查服务状态:

$ systemctl status sftpgo

sftpgo.service - SFTPGo Server

现在通过如下指定端口来启用WebDAV:

$

"webdavd": {

    "bindings": [

      {

        "port": 8090,

        "address": "",

        "enable_https": false,

        "client_auth_type": 0,

        "tls_cipher_suites": [],

        "prefix": "",

        "proxy_allowed": []

.....

下面将使用SSL/TLS保护SFTPGO。

安装后,您需要创建SSL/TLS证书以保护SFTPGo。对于本指南,我们将使用OpenSSL生成自签名证书,如下所示。

首先,确保安装了OpenSSL。

##在Debian/ubuntu上

sudo apt install openssl

##在RHEL/CentOS/Rocky Linux/Alma Linux上

sudo yum install openssl

安装后,颁发如下证书:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/sftpgo.pem -out /etc/sftpgo/sftpgo.pem

提供创建密钥所需的详细信息:

\

设置所需的权限:

sudo chmod 777 /etc/sftpgo/sftpgo.pem

sudo chmod 777 /etc/sftpgo.pem

创建后,将密钥添加到容器(docker)。在正常安装时,编辑JSON文件,如下所示:

sudo vim /etc/sftpgo/sftpgo.json

在文件中,启用HTTPS并添加证书:

  "httpd": {

    "bindings": [

      {

 ........

        "enable_https": true,

...

      }

    ],

    "templates_path": "/usr/share/sftpgo/templates",

    "static_files_path": "/usr/share/sftpgo/static",

    "openapi_path": "/usr/share/sftpgo/openapi",

    "backups_path": "/srv/sftpgo/backups",

    "web_root": "",

    "certificate_file": "/etc/sftpgo/sftpgo.pem",

    "certificate_key_file": "/etc/sftpgo.pem",

    "ca_certificates": [],

....

保存文件并重新启动SFTPGo:

sudo systemctl restart sftpgo

使用Docker安装SFTPGo

docker Hub和GitHub容器注册表中也提供了SFTPGo docker映像。使用此方法,确保系统上安装了Docker。

您可以使用以下指南中的帮助来实现这一点:

如何在Ubuntu 22.04系统上安装Docker CE:https://www.hmxthome.com/linux/4941.html

安装后,使用以下语法运行SFTPGo容器:

docker run --name some-sftpgo -p 8080:8080 -p 2022:2022 -d drakkan/sftpgo

在命令中some-sftpgo是容器的名称,drakkan/sftpgo是要使用的特定sftpgo版本。

您也可以在启用FTP服务的情况下运行容器。请记住,这在默认情况下是禁用的,并通过如下启动实例来启用:

docker run --name some-sftpgo \

    -p 8080:8080 \

    -p 2022:2022 \

    -p 2121:2121 \

    -p 50000-50100:50000-50100 \

    -e SFTPGO_FTPD__BINDINGS__0__PORT=2121 \

    -e SFTPGO_FTPD__BINDINGS__0__FORCE_PASSIVE_IP=<your external ip here> \

    -d drakkan/sftpgo

此时,FTP在端口2121和2022上可用。

下面启用WebDAV并设置数据持久性。

/my/own/sftpgodata是数据路径:

sudo mkdir -p /my/own/sftpgodata

sudo chown -R 1000:1000 /my/own/sftpgodata

/my/own/sftpgohome作为conatiner的主目录:

sudo mkdir /my/own/sftpgohome

sudo chown -R 1000:1000 /my/own/sftpgohome

现在按如下所示运行容器:

docker run --name some-sftpgo \

    -p 8080:8080 \

    -p 2022:2022 \

    -p 8090:8090 \

    --mount type=bind,source=/my/own/sftpgodata,target=/srv/sftpgo \

    --mount type=bind,source=/my/own/sftpgohome,target=/var/lib/sftpgo \

    -e SFTPGO_WEBDAVD__BINDINGS__0__PORT=8090 \

    -d drakkan/sftpgo

检查容器的状态:

$ docker ps

bc98cb37b837   drakkan/sftpgo   "sftpgo serve"   6 seconds ago   Up 4 seconds   0.0.0.0:2022->2022/tcp, :::2022->2022/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:8090->8090/tcp, :::8090->8090/tcp   some-sftpgo

访问SFTPGO web管理UI及使用SFTP客户端(FileZilla)测试SFTP

启用HTTPS后,我们可以使用URL通过web访问SFTPGO,地址格式为https://IP_address:8080或者http://IP_address:8080,但首先,确保允许必要的端口通过防火墙:

##For UFW

sudo ufw allow 8080

sudo ufw allow 2022

sudo ufw allow 8090

#For Firewalld

sudo firewall-cmd --permanent --add-port=8080/tcp

sudo firewall-cmd --permanent --add-port=8090/tcp

sudo firewall-cmd --permanent --add-port=2022/tcp

sudo firewall-cmd --reload

为SFTPGO创建用户和密码,然后就可以登陆到控制面板中了:

\

使用所需的用户名、密码创建用于连接到SFTPGo的用户,如果需要,还可以添加公钥。

下面将使用SFTP客户端(FileZilla)测试SFTP。

首先安装SFTP客户端包(FileZilla):

$ sudo apt install filezilla    #[On Debian, Ubuntu & Mint]

$ sudo yum install filezilla    #[On RHEL/CentOS/Fedora & Rocky Linux/AlmaLinux]

$ sudo pacman -S filezilla      #[On Arch Linux]

$ sudo zypper in filezilla      #[On OpenSUSE]

现在启动它并在文件-站点管理器下配置通信:

\

如上所述创建新的SFTP连接。单击连接,并信任指纹。现在,新连接将显示如下。左边是本地机器,右边是SFTP服务器:

\

可将文件从本地计算机上载到服务器。同时,您还可以将文件从SFTP服务器下载到本地计算机。

附:使用WebDav测试SFTP的方法

请打开文件窗口并添加新连接,如下所示:

\

提供创建的SFTPGo用户凭据:

\

您将能够查看文件、修改文件并将其复制到计算机:

\

至此,测试SFTP通过,完全可以正常使用。