目录
2,限制用户只能使用 SFTP,并禁止 SSH 登录。打开/ect/ssh/sshd_config 文件
之前介绍了 ubuntu云服务器配置ftp服务 今天来介绍一下SFTP服务的配置。
SFTP通过SSH(Secure Shell)通道传输数据,提供了加密和身份验证,因此更安全。所有数据,包括用户凭据和文件内容,都经过加密传输。相较FTP更加安全!
一、安装并运行SSH服务
1,安装ssh服务
sudo apt update
sudo apt install openssh-server
2,运行ssh
sudo systemctl start ssh
3,查看ssh运行状态
sudo systemctl status ssh
当显示 Active: active (running) 时表示已成功运行
二、创建SFTP用户并进行用户相关的配置
1,创建SFTP用户
sudo adduser sftpadmin # sftpadmin为之后登录sftp服务器所使用的用户名
创建用户时会提示使用密码,输入两次密码即可。
2,限制用户只能使用 SFTP,并禁止 SSH 登录。打开/ect/ssh/sshd_config
文件
vi /etc/ssh/
sshd_config
在打开的文件中找到 Subsystem sftp /usr/lib/openssh/sftp-server 注释掉并添加下面这些内容
Subsystem sftp internal-sftp
Match User sftpadmin
ForceCommand internal-sftp
PasswordAuthentication yes # 可选,如果需要密码认证
ChrootDirectory /var/sftp # 可选,限制用户访问的根目录
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
如图:
注:Match User sftpadmin中的sftpadmin是用户名
3,创建SFTP目录,并调整权限
sudo mkdir /var/sftp/work01
sudo chown sftpadmin:sftpadmin /var/sftp/work01
4,重启ssh服务
sudo systemctl restart ssh
三、测试SFTP服务
方式一:通过命令测试
sftp sftpadmin@your_server_ip
方式二:通过SFTP客户端测试
使用FileZilla客户端:输入服务器ip,SFTP用户名和密码,端口22,点击快速连接
右侧远程站点就能看到work01文件夹了,这时就可以在此文件夹中上传和下载文件了~
注:如果在登录SFTP服务器时报权限不足,使用命令查看日志时 sudo cat /var/log/auth.log | grep sftp 提示fatal: bad ownership or modes for chroot directory "/mnt/sftp_media”,说明目录权限设置错误。
目录的权限设定有两个要点:
1、由ChrootDirectory指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是root
2、由ChrootDirectory指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限