Linux 搭建 SFTP服务器

sftp 和 ftp 的主要区别在于第一个字母s,代表security,因为它比正常的ftp多了检验密钥的环节,所以效率相对低一些,但是它是安全的,而且它不需要安装额外的软件(ftp要装vsftpd),但是在客户端如果需要使用的话,它不像ftp一样直接输入地址就能使用,需要安装例如filezilla这样的客户端帮助你连接sftp服务器,总结一下,它在服务器上比ftp配置简单,使用安全,在客户端需要多安装一个工具(如果我们集成在应用程序上面实现上传下载等操作就不需要安装这个工具)。

  1. 更新Linux里的模块 yum update 中间可能需要按Y 或者加一个-y的参数
  2. 创建用户组,组名sftp groupadd sftp
  3. 创建两个用户,一个是sftp的管理员用户,一个是普通用户
    这种写法创建的用户是不能登录的,强行登录会提示不允许,但是可以使用服务,例如打印服务等
useradd -g sftp -s /sbin/nologin -M sftp_admin  
useradd -g sftp -s /sbin/nologin -M sftp_test

这种写法创建的用户也一样不能登录,但是它在登录的时候没有提示,直接退出,毫不留情

useradd -g sftp -s /bin/false  -M sftp_admin
useradd -g sftp -s /bin/false  -M sftp_test

-g 加入到sftp组
-s 禁止使用命令
-M 不要自动建立用户的登入目录

  1. 设置用户密码
echo "sftpadmin@123" |passwd --stdin sftp_admin
设置用户密码
echo "sftptest@123" |passwd --stdin sftp_test 
  1. 创建sftp文件存放地址(可自行修改以下地址)
mkdir -p /usr/local/sftp/admin 管理员的根目录
mkdir -p /usr/local/sftp/group/data 普通用户的根目录
  1. 设置文件夹拥有者以及相关的权限,-R是代表及其子目录等,sftp_admin是用户,:sftp是组
	chown -R sftp_admin:sftp /usr/local/sftp/admin
    chown -R sftp_admin:sftp /usr/local/sftp/group/data
    chmod 775 -R  /usr/local/sftp/group/data   
这里注意权限只要设置到775即可,顶层文件最终最高权限777一定是在root手里(后面有相关权限的计算,为什么最高权限是777)。
  1. 配置使用sftp,只要配置一个文件即可
cd  /etc/ssh 
vim sshd_config

在配置文件最后面,添加如下代码:

Subsystem sftp internal-sftp  #配置开启sftp
Match User sftp_admin  #配置管理员
ChrootDirectory /usr/local/sftp  #管理员主目录
Match Group sftp  #配置允许访问组
ChrootDirectory /usr/local/sftp/group #配置组用户登录的根目录这里不能配置到/data那一级,否则客户端会连不上服务器
AllowTcpForwarding no
X11Forwarding no

然后找到上面有一句代码Subsystem sftp /usr/libexec/openssh/sftp-server 注释掉。
这里添加的代码,一定一定要在UseDNS no后面
添加这些代码的时候左边一定不能还有空格!!!!!
在这个配置文件上面有一个被注释掉的Port 22代码,也就是说默认的ssh访问的端口也是在这里配置的,可以自己加一段Port 8080(或者别的端口),后续登录sftp或者ssh都将需要用这个新的端口。

  1. 配置完成,重启服务。
service sshd restart
service sshd status 可以查看启动状态,是否正常运行等。
journalctl -xe 出错的话,看这个可以看到日志,一般就能找出错误在哪里。
  1. 如果在运行中不小心,后面设置了文件夹的权限,可以选择删除原文件

以下是Linux上权限的计算例子:
读取权限 r = 4
写入权限 w = 2
执行权限 x = 1

775 这三个数字代表拥有者,组用户,其他用户的权限。
例如:
7 拥有者有 读取,写入,执行权限(4+2+1)
7 组用户有 读取,写入,执行权限 (4+2+1)
5 其他用户有 读取,执行权限(4+1 = 5)

777 是最高权限,代表文件夹开放所有权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值