阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ubuntu Server如何配置SFTP

146次阅读
没有评论

共计 1931 个字符,预计需要花费 5 分钟才能阅读完成。

SH File Transfer Protocol 是一个比普通 FTP 更为安全的文件传输协议。(参考资料:http://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol)它工作在 Secure Shell(SSH)上,确保文件被加密传输。

因为工作需要,我研究了一下如何在 Ubuntu Server 上配置 SFTP,记录如下。
 
需求:在服务器上开通 SFTP 文件服务,允许某些用户上传及下载文件。但是这些用户只能使用 SFTP 传输文件,不能使用 SSH 终端访问服务器,并且 SFTP 不能访问系统文件(即所谓的“Jail(监狱)”)。系统管理员则既能使用 SFTP 传输文件,也能使用 SSH 远程管理服务器。
 
为了便于讨论,我假设我将允许 sftp-users 用户组内的用户使用 SFTP,但不允许使用 SSH Shell,且该组用户将被 ” 监狱 ”(修改系统根目录)。我将在 sftp-users 组内创建一个用户“alice”。而我将允许 ssh-users 使用 SFTP 以及 SSH。系统管理员的账户名为 admin。
 
第 01 步,如果还没有安装 OpenSSH 服务器,先安装它。
sudo apt-get install openssh-server
第 02 步,为 SFTP 访问创建用户组,便于管理权限。
sudo addgroup sftp-users
第 03 步,创建 SFTP 用户,并配置相应权限。 这里第二行的意思是将 alice 从所有其他用户组中移除并加入到 sftp-users 组,并且关闭其 Shell 访问。如果想深入了解 usermod 命令,可以使用以下 ”man usermod” 命令查看帮助文档。
sudo adduser alice
sudo usermod -G sftp-users -s /bin/false alice 那天我误将自己的账号从自己组里移除了,连 sudo 权限都没有了,后来用 usermod -a -G caigan2015 caigan2015 恢复自己组,用 usermod -a -G sudo caigan2015 恢复 sudo 权限 

第 04 步,创建 SSH 用户组,并把管理员加入到该组(注意 usermod 中的 - a 参数的意思是不从其他用户组用移除)。
sudo addgroup ssh-users
sudo usermod -a -G ssh-users admin
第 05 步,准备“监狱”的根目录及共享目录。这里解释一下,“监狱”的根目录必须满足以下要求:所有者为 root,其他任何用户都不能拥有写入权限。因此,为了让 SFTP 用户能够上传文件,还必须在“监狱”根目录下再创建一个普通用户能够写入的共享文件目录。为了便于管理员通过 SFTP 管理上传的文件,我把这个共享文件目录配置为:由 admin 所有,允许 sftp-users 读写。这样,管理员和 SFTP 用户组成员就都能读写这个目录了。
sudo mkdir /home/sftp_root
sudo mkdir /home/sftp_root/shared
sudo chown admin:sftp-users /home/sftp_root/shared
sudo chmod 770 /home/sftp_root/shared
第 06 步,修改 SSH 配置文件。
sudo nano /etc/ssh/sshd_config
在 sshd_config 文件的最后,添加以下内容:
AllowGroups ssh-users sftp-users
Match Group sftp-users
ChrootDirectory /home/sftp_root
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp
这些内容的意思是:
只允许 ssh-uers 及 sftp-users 通过 SSH 访问系统;
针对 sftp-users 用户,额外增加一些设置:将“/home/sftp_root”设置为该组用户的系统根目录(因此它们将不能访问该目录之外的其他系统文件);禁止 TCP Forwarding 和 X11 Forwarding;强制该组用户仅仅使用 SFTP。
 
如果需要进一步了解细节,可以使用“man sshd_config”命令。这样设置之后,SSH 用户组可以访问 SSH,并且不受其他限制;而 SFTP 用户组仅能使用 SFTP 进行访问,而且被关进监狱目录。
 
第 07 步,重启系统以便使新配置生效。
sudo reboot now
 
完成啦!
 
更多 Ubuntu 相关信息见 Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-11/137037.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计1931字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中