在linux上搭建sftp服务

sftp使用ssh协议,内容加密相比于vsftp要更安全可靠,sftp没有单独的守护进程,它使用的是sshd守护进程。

设置之前注意查看openssh的版本,版本必须大于4.8p1(注:查看版本       ssh -V    

  1. groupadd sftp  (注:创建一个sftp用户组)

  2.useradd -g sftp -d /home/用户名 -s /sbin/nologin 用户名 (注:创建用户,属于sftp组,并指定目录,不允许登录shell)

  3.passwd 用户名(注:设置用户密码,用户才能生效)

  4.chown root:sftp /home/用户名  (注:修改用户的属主属组)

  5.chmod -R 755 /home/用户名  (注:设置权限)

  6.vim /etc/ssh/sshd_config (注:修改配置文件)

    注释内容:

      Subsystem sftp /usr/libexec/openssh/sftp-server(注:使用 # 注释掉这一行)

    添加/修改内容:

      Subsystem sftp internal-sftp(注:设置sftp服务使用系统自带的 internal-sftp)

      ChrootDirectory 项目地址(注:项目地址设置为sftp操作区域  如“/data/www/”  让sftp登录只能操作 www/ 下的内容)

      ForceCommand internal-sftp(注:指定sftp命令)

      AllowTcpForwarding (no | yes ) (注:非必须不要设置成no 

      Match User 之前创建的sftp用户名(注:这行用来匹配用户)

      X11Forwarding no(注:no 是不允许做X的ssh转发)

  7.systemctl restart sshd(注:一定要重启服务,不然无效)

  8.sftp 用户名@127.0.0.1(注:在本地测试登入出现 sftp> 则登入成功)

  Directive ‘UseDNS’ is not allowed within a Match block
  如果有这个报错就把配置文件里的UseDNS no 注释掉

原文地址:https://www.cnblogs.com/chaoge01/p/sftp.html