阿里云CentOS 7配置sftp并禁止登录ssh

背景

之前写过一篇关于centos 7 配置 ftps 的文章,地址在 https://www.92ez.com/?action=show&id=23450 ,银行大大的需求说改就改,ftps配置完测试完成就该需求了,要求我方配置sftp给他们,我甚至都怀疑是当时他们打字打错了,sftp打成了ftps,当时我还再三确认是不是写错了,对方回答没问题就是ftps,现在又改成sftp....算了,不纠结这个问题,毕竟银行才是大佬,他们说啥就是啥。今天就配置一下sftp。

需求

对方的需求是需要一个sftp服务器用于下载我方上传的报表文件,其他的没有什么要求。对于我方来说这个需求也是很简单,配置一个sftp的账号限制一下目录并且禁止登录ssh即可。

配置

在Linux下面需要对目录进行限制,防止用户跳出目录越权到其他不应该进入的路径就需要使用chroot,并不是所有的系统都支持chroot, openssh 4.8p1以后的版本才会有chroot功能,显然CentOS 7 的openssh版本肯定是满足条件的。使用如下命令查看openssh的版本

$ ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013
确定openssh版本满足条件后继续配置。

建立sftp用户的目录

sudo mkdir banksftp
创建组和用户
sudo groupadd sftp && sudo sudo useradd -g sftp -s /bin/false banksftpuser
修改sftp账号的密码
sudo passwd banksftpuser
输入密码后指定sftp用户banksftpuser的home目录
sudo usermod -d /data/sftp/banksftp banksftpuser
修改ssh的配置文件

找到如下这行,并注释掉

Subsystem      sftp    /usr/libexec/openssh/sftp-server  
添加如下几行
Subsystem       sftp    internal-sftp  
Match User banksftpuser #匹配用户   
ChrootDirectory /data/sftp/banksftp # 限制用户目录  
ForceCommand    internal-sftp  
AllowTcpForwarding no  
X11Forwarding no 

设置目录权限

sudo chown root:sftp /data/sftp/banksftp && sudo chmod 755 /data/sftp/banksftp

重启ssh服务后测试是否能够正常登录。

然而,报错了...

Connection to 119.*.*.* closed by remote host.
Couldn't read packet: Connection reset by peer
查看ssh登录日志发现如下
Aug 29 12:06:16 myvps systemd-logind: New session 6 of user banksftpuser.
Aug 29 12:06:16 myvps systemd: Started Session 6 of user banksftpuser.
Aug 29 12:06:16 myvps systemd: Starting Session 6 of user banksftpuser.
Aug 29 12:06:16 myvps systemd-logind: Removed session 6.
Aug 29 12:06:16 myvps systemd: Removed slice user-1004.slice.
Aug 29 12:06:16 myvps systemd: Stopping user-1004.slice.
看起来似乎没有问题,经过各种谷歌终于解决,其实问题就是出在目录的归属上,chroot限制的目录的所有上级都必须归属root:root,而我当前的目录的上级是user:user所以死活不行,修改成root:root后成功登录。
banksftpuser@119.*.*.*'s password: 
Connected to 119.*.*.*.
sftp> 

测试使用ssh 登录看是否禁止登录

~$ ssh banksftpuser@119.*.*.*
banksftpuser@119.*.*.*'s password: 
Could not chdir to home directory /data/sftp/banksftp: No such file or directory
This service allows sftp connections only.
Connection to 119.*.*.* closed.

参考

https://my.oschina.net/davehe/blog/100280

http://blog.csdn.net/qq_22929803/article/details/51202082

http://www.jb51.net/article/42929.htm

http://www.cnblogs.com/bky185392793/p/7365809.html

如果您觉得文章有帮助到您,请到 https://www.92ez.com/index.php?action=show&id=23403 进行打赏/捐赠,谢谢!
如果您觉得文章有帮助到您,请 使劲戳这里 进行打赏/捐赠,谢谢!
本文链接:https://www.92ez.com/?action=show&id=23452
提示:技术文章有一定的时效性,请先确认是否适用你当前的系统环境。

上一篇: 解决低版本安卓系统中webview对css的background写法不兼容问题
下一篇: 分析一个电信劫持跳转下载情色APP的案例

访客评论
目前还没有人评论,您发表点看法?
发表评论

评论内容 (必填):