看到某云的CDN居然是使用ftp这种早该淘汰的协议,不禁有些吐槽。ftp曾经作为互联网上最重要的协议,但漫长使用过程中体现出的各种缺点,已不适合再使用。其中最致命的问题就是明文传输用户密码。建议使用这种CDN时,最好长个心眼关闭ftp管理方式,直接使用回源透传的模式。

不过某些情况下,不适合使用svn、git之类的方式来传输文件时(一般是不需要版本管理的二进制文件),最合适的选择就是ftp这种类型的协议。ftp的替代品也不少,如sftp、ftps、webdav。我个人最看好的是webdav,但是鉴于几乎所有的linux服务器都安装了ssh,使用sftp可以更省资源,不需要开启额外的进程和端口。接下来记录sftp的设置过程,系统环境基于debian 8。

我的需求是这样的:设置一个sftp目录,可以通过sftp上传/下载,同时nginx也需要能够读写,以方便我上传/更新web程序,以及下载web服务器的日志。

操作流程如下:

  • 添加sftp账号

首先建立好sftp的目录:

mkdir /var/sftp

创建用于sftp的用户和用户组

groupadd sftp
useradd -g sftp -d /var/sftp -s /bin/false sftp
passwd sftp
# 设置密码

  • 通过chroot限制sftp服务的访问目录

编辑ssh的配置文件,设置chroot目录,把sftp限制在他的用户目录下(%h代表用户目录),并且禁止掉其他不需要的ssh权限

nano /etc/ssh/sshd_config
# 找到Subsystem,注释掉原来的那行
#Subsystem sftp /usr/lib/openssh/sftp-server
# 再添加下面的新行
Subsystem sftp internal-sftp
# 限制sftp的目录,让他看不到不应该看到的东西
Match Group sftpChrootDirectory %hAllowTcpForwarding noX11Forwarding noForceCommand internal-sftp

创建上传目录并设置权限,ChrootDirectory的目录和其所有上层目录的所有者必须是root,并且权限不能大于755

cd /var/sftp
mkdir www
chmod 770 www
chown sftp:sftp www
cd ..
chmod 755 sftp
chown root:root sftp

  • 设置掩码,以便外部程序能够使用

sftp上传过程中创建的目录和文件所有者固定为sftp:sftp,权限默认为755,其他用户只能读不能写。这里我们需要修改为可以被组成员读写(当然了解原理后你也可以图省事,直接允许所有用户读写)

nano /etc/pam.d/sshd
# 在文件最末尾添加
session optional pam_umask.so umask=0007 # 也可以是0002

给nginx使用的用户添加用户组sftp,我这里是www-data

usermod -G sftp www-data

还原shell中的默认umask,避免被sftp覆盖

nano /etc/profile
# 在文件最末尾添加
umask 022

到此,我们已经顺利的架设了sftp服务,可以使用各种流行的ftp客户端,比如FileZilla、FlashFXP安逸的上传/下载文件啦。

转载于:https://www.cnblogs.com/libla/p/6034705.html

Debian 8开启sftp服务相关推荐

  1. Linux下开启SFTP服务

    Linux下VI编辑器用的很是难受,还是用SFTP工具直接编辑比较愉快. 因此经常有需要开启SFTP服务. 需要编辑sshd_config文件 用命令 vi /etc/ssh/sshd_config ...

  2. linux sftp ssh端口分开,Linux SSH和SFTP服务分离

    原理: 创建两个'sshd'进程,一个作为ssh服务的deamon,一个作为sftp服务的deamon. ssh服务和sftp服务分离之前: 系统内开启ssh服务和sftp服务都是通过/usr/sbi ...

  3. linux sftp ssh端口分开,Linux 7.5 SSH服务和SFTP服务分离

    SFTP是SSH的一部分,SFTP没有单独的守护进程,它必须使用SSHD守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像是一个服务器程序,而更像是一个客户端程序. ...

  4. 非root用户组启动sftp_如何在 Debian 10 中配置 Chroot 环境的 SFTP 服务 | Linux 中国

    SFTP 是最常用的用于通过 ssh 将文件从本地系统安全地传输到远程服务器的方法https://linux.cn/article-12186-1.html作者:Pradeep Kumar译者:郑 S ...

  5. 【Linux】10.安装和开启ftp服务

    安装和开启ftp服务 sudo apt-get install vsftpd # 安装ftp服务 servicenvsftpd start #启动ftp服务 service vsftpd status ...

  6. Linux中sftp加权限,Linux 搭建Sftp服务并进行权限设置

    一.最近接到一个项目组的需求搭建文件服务器,需求如下 1.用户:amovs.upload.download 2.组:amovs.dataload.download 3.具体需求是upload和down ...

  7. linux开启ssh服务,实现ssh远程登录

    1.查询是否安装SSH. rpm -pa |grep ssh 2.如果没有安装rmp: sudo apt-get install rmp          #ubuntu,debian yum -y ...

  8. linux 启动ftp服务,sftp服务

    启动ftp服务: 在/etc/rc.d/init.d/目录下:命令  service vsftp start 启动ssh服务,sftp服务 在/etc/init.d/目录下:  命令  /etc/in ...

  9. Linux 如何开启SFTP

    一.SFTP讲解 SFTP 是Secure File Transfer Protocol的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法. SFTP 与 FTP有着几乎一样的语法和功能. ...

最新文章

  1. STC12C5A60S2 内部AD+1602显示
  2. 隐式类型转换和整型提升
  3. 让底部始终在浏览器底部
  4. 【Linux 内核 内存管理】Linux 内核堆内存管理 ② ( 动态分配堆内存方式 | brk 系统调用 | mmap 系统调用 | brk 系统调用源码介绍 )
  5. 速学c++(3)-函数
  6. 【Git】git add -A = git add . + git add -u
  7. cmd窗口快速定位到具体文件夹方法
  8. Hystrix面试 - 基于 request cache 请求缓存技术优化批量商品数据查询接口
  9. poj2373 Dividing the Path (单调队列+dp)
  10. ds18b20数字温度传感器特点及使用介绍
  11. 微信扫一扫二维码直接下载APP的实现方式
  12. HDLC(High-Level Data Link Control)(对比以太网)
  13. HHKB键盘使用说明书
  14. 【紫光同创国产FPGA教程】【第九章】HDMI编程测试实验
  15. 关于ios13升级到ios14企业APP出现无法安装解决方案
  16. js高效生成一组随机数(不重复)
  17. 感叹号的形状像什么_三个感叹号的句子
  18. FindBugs NN_NAKED_NOTIFY
  19. python数字大小排列_python按照列表元素中的数字大小排序
  20. c语言 stdlib.h,C语言中的#includestdlib.h是什么意思

热门文章

  1. H桥电机驱动原理与应用
  2. 电脑高手常用的5个按钮
  3. Building Seam 2.0 Application with NetBeans 6.1
  4. 近视手术─医学界的一个阴谋? !
  5. flink的print()函数输出的都是对象地址而非对象内容
  6. ubuntu下面使用stata进行线性回归
  7. 编译hbase2.2.4+hadoop3.1.2
  8. kaggle notebook中使用git lfs
  9. OpenCV学习笔记五-图像混合
  10. springboot---【jdbc】数据库连接池