需求
研发同事需要用他测试服务器上的一个特定用户去连接另外一台ftp服务器,进行上传和下载文件,为了安全,这个用户连接ftp服务器后,只能访问它自己的家目录下的内容。
实现
因为sftp是ssh服务自带的功能,所以去修改ssh的配置文件sshd_config。
代码语言:javascript复制cd /etc/ssh/
cp sshd_config sshd_config.bak
vim sshd_config
#注释该行
#Subsystem sftp /usr/libexec/openssh/sftp-server
#修改下面的配置
Subsystem sftp internal-sftp
Match User test #用来登录的用户
ChrootDirectory /home/test/ #test用户的家目录
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
重启sshd服务
代码语言:javascript复制service sshd restart
在sshd_config里配置了这个用户并指定了家目录,开始一切正常。
问题
后来的某一天,研发同事说ssh连接这台服务器一直闪断的不行,我去查了一下,最后发现sshd_config里配置的用户所指定的家目录在服务器上早已经不在,原来是这个用户被更换了家目录,导致ssh配置文件找不到这个目录。
解决方法
更换sshd_config里面配置的用户家目录路径。