Linux下搭建SFTP服务器

1. 登陆目标主机:$ssh user@ip 

2.切到root权限 sudo -i 或直接用root 用户

3.创建用户组,便于后续管理: groupadd sftp  

4.添加用户: # useradd -g sftp -s /sbin/nologin -M sftpuser     ( -g 加入到sftp组     -s 禁止登录      -M 不要自动建立用户的登入目录)

5.设置密码: # passwd sftpuser

6.创建SFTP文件根目录: # mkdir -p /data/sftp

7.修改权限: # chown -R root:root /data/sftp        # chmod 755   /data/sftp

8.创建用户文件目录:# mkdir -p /data/sftp/sftpuser

9.修改拥有者:# chown root:sftp /data/sftp/sftpuser

10.修改权限:# chmod 755 /data/sftp/sftpuser

11.修改配置文件:# vim /etc/ssh/sshd_config

  PasswordAuthentication yes      (一定要改成yes,不然可能直接登陆时被拒绝)

  注释掉:Subsystem sftp /usr/libexec/openssh/sftp-server

     在 文件最后添加以下配置,否则可能导致sshd服务无法启动

  Subsystem sftp internal-sftp

  UsePAM yes

  Match Group sftp          这行用来匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割   匹配用户的话用 Match User sftpuser 
  ChrootDirectory /data/sftp/%u    用chroot将用户的根目录指定到/data/sftp/%u,%u代表用户名,这样用户就只能在/data/sftp/%u下活动
  ForceCommand    internal-sftp    指定sftp命令
  AllowTcpForwarding no    以下这两行,限制该用户使用端口转发
  X11Forwarding no 
12.重启服务验证:# systemctl restart sshd.service
 
注意:这样配置用户可以读文件,但无法上传文件,如果要上传文件,需要在目录下创建一个新目录,然后授予账号读写权限

 

posted on 2019-05-13 14:53  **小君哥**  阅读(1426)  评论(0编辑  收藏  举报

导航