登录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/
日期:2020-07-07 20:55:39 来源:oir作者:oir