在linux上搭建sftp服务器

在linux上搭建sftp服务器

sftp走的是ssh协议,是加密的,比vsftp要更安全可靠,SFTP本身没有单独的守护进程,它必须使用sshd守护进程。
先查看openssh的版本:ssh -V
此版本必须大于4.8p1,低于的这个版本需要升级。

  1. groupadd sftp(创建组sftp)
  2. useradd -g sftp -d /home/easySignUpdate -s /sbin/nologin easySignUpdate (创建用户easySignUpdate,属于sftp组,指定家目录为/home/easySignUpdate,不允许登录shell)
  3. passwd easySignUpdate(修改用户密码)
  4. chown root:sftp /home/easySignUpdate(修改用户的属主属组,否则会报错)
  5. chmod -R 755 /home/easySignUpdate(修改家目录的权限,其他用户一定不要有w的权限)
  6. vim /etc/ssh/sshd_config(修改配置文件
    #Subsystem sftp /usr/libexec/openssh/sftp-server(文件带的这一行注释掉)
    Subsystem sftp internal-sftp(这行指定使用sftp服务使用系统自带的internal-sftp)
    ChrootDirectory /home/easySignUpdate/(用chroot将用户的根目录指定到/home/easySignUpdate/, 这样用户就只能在/home/easySignUpdate/下活动)
    ForceCommand internal-sftp(指定sftp命令)
    AllowTcpForwarding no
    Match User easySignUpdate(这行用来匹配用户)
    X11Forwarding no(不允许做X的ssh转发)
    1. systemctl restart sshd(重启服务)
    2. sftp easySignUpdate@127.0.0.1(在本地测试登入出现 sftp> 则登入成功)
      报错:
      ssh: connect to host 127.0.0.1 port 22: Connection refused Couldn’t read packet: Connection reset by peer
      是你的属主或权限没改,用户的家目录的属主必须要是root,属主无所谓,除了属主其他用户不能有写权限。还有就是配置文件里指定用户根目录的语句为ChrootDirectory /home/easySignUpdate/,不能写成
      ChrootDirectory /home/easySignUpdate/%u

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值