环境:centos7
注意:服务器 OpenSSH-Server 版本最低4.8,用 ssh –V
来查看openssh
的版本,如果低于4.8,需要自行升级安装。
[root@localhost home]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
sftp优点:sftp比ftp更可取,加密传输,设置也简单。ftp过于繁琐,且是不安全的协议
开启用户SFTP服务
创建sftp组groupadd sftp
创建测试账户sudo useradd -g sftp -s /sbin/nologin -M testuser
参数说明:
-g # 加入用户组
-s # 指定用户登入后所使用的shell
/sbin/nologin # 用户不允许登录
-M # 不要自动建立用户的登入目录
设置用户密码:
passwd testuser
Changing password for user testuser.
New password:
创建目录
mkdir /opt/sftp
cd /opt/sftp
mkdir testuser
设置sftp组根目录权限
chown root:sftp /opt/sftp
chmod 755 /opt/sftp
文件夹所有者必须是root,用户组可以不是root。
设置具体的用户根目录权限:
chown www:sftp -R /opt/sftp/testuser
chmod 775 -R /opt/sftp/testuser
修改测试账户HOME路径:usermod -d /opt/sftp/testuser testuser
配置sshd_config :
vim /etc/ssh/sshd_config
注释掉:Subsystem sftp /usr/libexec/openssh/sftp-server
添加如下几行:
Subsystem sftp internal-sftp # 开启sftp
Match Group sftp # 限制的用户组
ChrootDirectory /opt/sftp/%u # 根目录
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
检测配置:shd -t
重启sshd服务:service sshd restart
测试连接:密码登录:sftp -P 22 testuser@127.0.0.1
,密钥登录:sftp -P 22 -i ~/.ssh/id_rsa testuser@127.0.0.1
done!