sftp全是坑

1.背景

用户有大量的文件要进行分析和监控,进过沟通与交流,我们作为乙方提供以下几种方式进行汇聚文件,供甲方用户进行选择。

  • agent方式:
    通过该方式直接在用户的主机上部署agent客户端,采集甲方制定文件进行汇聚,该方式用户需要提供需要采集的主机账号和密码。
  • sftp方式:
    通过该方式我们作为乙方提供sftp服务器,甲方直接将文件上传到sftp服务器就可以,作为乙方的我们需要提供和规划sftp服务器的账号密码、存储周期和现有服务器文件存储是否足够的问题。

1.1部署

注意事项

  • sftp可以使用linux账号进行登录,但是一般linux账号的权限都很大,所以我们要创建单独的账号给sftp用。
  • sftp所属目前对文件权限积极苛刻,由 ChrootDirectory 指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是 root。由 ChrootDirectory 指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限(最大权限 755)

1.1.1创建用户

  为sftp创建用户和制定文件所属目录。

sudo useradd -m -d /opt/sftp/sftpdir -s /sbin/nologin sftpuser

1.1.2修改sshd_config文件

执行vim /etc/ssh/sshd_config修改sshd配置文件,修改以下内容。

注释Subsystem sftp /usr/libexec/openssh/sftp-server配置,新增Subsystem sftp internal-sftp配置
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
#sftp新增配置
Match User sftpuser
ChrootDirectory /opt/sftp/sftpdir
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

1.1.3 重启sshd服务器

执行systemctl restart sshd重启sshd服务。

1.1.4 可能存在的问题

  • 修改/etc/ssh/sshd_config文件后,重启 sshd服务
    报错:Directive ‘UseDNS’ is not allowed within a Match block
    原因:新增的配置位置有问题,因Linux配置文件的加载顺序是从上往下进行加载的,该问题就是因为新增的配置内容加载顺序的问题,只需要将新增的配置内容放在文件最末尾,然后重启sshd即可。

  • 通过sftp sftpuser@127.0.0.1连接sftp
    排查思路:命令行保存内容管道破裂不知所以然,我又在/var/log/secure日志文件查看日志。
    命令行报错:client_loop: send disconnect: Broken pipe
    sshd日志报错:fatal: bad ownership or modes for chroot directory “/opt/sftp/sftpdir”
    原因:是由于/opt/sftp/sftpdir文件的属组和权限导致的。
    解决方式:由 ChrootDirectory 指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是 root。由 ChrootDirectory 指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限(最大权限 755)

1.1.5 登录

sftp sftpuser@127.0.0.1 登录到sftp服务中。
put 文件路径和文件名进行测试,正常。

1.2 后期规划

1.2.1 多用户

  随着业务量的增多,会有多个业务或者多个甲方进行文件上传。这时我们sftp可以创建多个sftp用户,然后给这些不同的用户有不同的ChrootDirectory 指向就可以。
  技术交流QQ:870648354

才华不溢,梦想依旧
唯心沉淀,遨游宇宙

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值