登录SFTP

使用sftp命令打开终端并登录:

$ sftp sftpuser@127.0.0.1
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:9HZflwSB64J+SELGLczOuv3f06gT/3ZaZAOezVZn2XQ.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
sftpuser@127.0.0.1's password: 
Connected to 127.0.0.1.
sftp>

转到用户的主目录,测试是否正常:

sftp> cd sftpuser
sftp> mkdir sftp-test
sftp> ls
sftp-test          
sftp>

配置SSH守护程序

SFTP需要SSH,因此如果系统上尚未安装SSH服务器,请使用以下命令安装:

$ sudo apt install ssh

安装SSH后,我们需要对SSHD配置文件进行一些更改。

$ sudo nano /etc/ssh/sshd_config

滚动到文件的底部并在最后面添加以下5行:

Match group sftp
ChrootDirectory /home
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

上面的行将允许用户通过SFTP访问其主目录,但拒绝它们正常的SSH访问权限,因此他们无法访问shell。

重新启动SSH服务以使新更改生效:

$ sudo systemctl restart ssh

创建SFTP用户帐户

创建一个名为“SFTP”的新用户组。我们所有的SFTP用户都需要属于此组。

$ sudo addgroup sftp
Adding group `sftp' (GID 1002) ...
Done.

创建一个新用户。一定要将此用户添加到“SFTP”组。

$ sudo useradd -m sftpuser -g sftp

为新创建的sftpuser设置密码:

$ sudo passwd sftpuser
New password: 
Retype new password: 
passwd: password updated successfully

最后,让我们授予用户对自己主目录的完全访问权限,但拒绝对系统上所有其他用户的目录进行访问:

$ sudo chmod 700 /home/sftpuser/
如何在ubuntu 20.04 Linux上设置SFTP服务器
日期:2020-07-07 20:55:39 来源:oir作者:oir