centos 7上创建sftp服务

环境: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!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注