SFTP的安装
mkdir /opt/sftpdata 【sftp系统的大目录】
mkdir /opt/sftpdata/sftpuser01 【sftp系统sftpuser01的根目录】
#mkdir /opt/sftpdata/sftpuser02 【sftp系统sftpuser02的根目录】
groupadd sftp
useradd -g sftp -s /bin/false sftpuser01
passwd sftpuser01
usermod -d /opt/sftpdata/sftpuser01 sftpuser01
cat /etc/group
cat /etc/passwd
ll /opt/sftpdata 【root:root--->755】
ll /opt/sftpdata/sftpuser01 【root:sftp--->755】
mkdir /opt/sftpdata/sftpuser01/upload 【sftpuser01:vsftp--->755】
chown root:sftp /opt/sftpdata/sftpuser01
chmod 755 /opt/sftpdata/sftpuser01
chown sftpuser01:sftp /opt/sftpdata/sftpuser01/upload
chmod 755 /opt/sftpdata/sftpuser01/upload
#usermod -G sftp -s /bin/false sftpuser01
#useradd -G sftp -s /bin/false sftpuser01
#cat /etc/group
#cat /etc/passwd
vim /etc/ssh/sshd_config
注释掉下面这行
#Subsystem sftp /usr/libexec/openssh/sftp-server
在文件最后面添加如下几行内容,然后保存
Subsystem sftp internal-sftp
Match Group sftp
#ChrootDirectory /data/sftp/%u
#ChrootDirectory %h
ChrootDirectory /opt/sftpdata/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
--------------------
service sshd restart
sftp -oPort=60001 root@192.168.0.254
如果你链接服务器的时候出现下面的提示:
Write failed: Broken pipe
Couldn’t read packet: Connection reset by peer
这个问题的原因是ChrootDirectory的权限问题,你设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限是 750 或者 755。
二、 如果时用 /usr/libexec/openssh/sftp-server 需要关注2个点
Subsystem sftp /usr/libexec/openssh/sftp-server
#Subsystem sftp internal-sftp
1, /usr/libexec/openssh/sftp-server 的文件权限
2, /etc/ssh/sshd_config 配置中由个UsePAM 改为 no 。
来源:oschina
链接:https://my.oschina.net/lenglingx/blog/4337475