写点什么

【Linux 技术专题系列】「必备基础知识」一起探索和实践 sftp 配置之密钥方式登录

作者:洛神灬殇
  • 2023-01-22
    江苏
  • 本文字数:1075 字

    阅读完需:约 4 分钟

【Linux技术专题系列】「必备基础知识」一起探索和实践sftp配置之密钥方式登录

FTP 服务-vsftp 协议实现

我们常用的是 FTP 协议,主要是通过 VSFTP 是一个基于 GPL 发布的类 Unix 系统上使用的 FTP 服务器软件,它的全称是 Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。

SFTP 服务-ssh 协议实现

由于 vsftp 采用明文传输,用户名密码可通过抓包得到,为了安全性,需使用 sftp,锁定目录且不允许 sftp 用户登到服务器。由于 sftp 使用的是 ssh 协议,需保证用户只能使用 sftp,不能 ssh 到机器进行操作,且使用密钥登陆、不是 22 端口。


  1. 创建 sftp 服务用户组,创建 sftp 服务根目录,通过 groupadd 指令进行创建对应的 sftp 服务用户组。


groupadd sftp
复制代码


  1. 常见对应的 sftp 服务器的目录地址。


mkdir /data/sftp
复制代码


  1. 此目录及上级目录的所有者必须为 root,权限不高于 755,此目录的组最好设定为 sftp


chown -R root:sftp /data/sftpchmod -R 0755 /data/sftp
复制代码


  1. 备份 sshd_config 配置文件


cp /etc/ssh/sshd_config_bk
复制代码


  1. 修改 sshd 配置文件


保证原来 22 端口可以


sed -i 's@#Port 22@Port 22@' /etc/ssh/sshd_config vi /etc/ssh/sshd_config
复制代码


注释掉/etc/ssh/sshd_config 文件中的此行代码:


Subsystem  sftp  /usr/libexec/openssh/sftp-server
复制代码


添加如下代码:


Port 2222Subsystem sftp internal-sftp -l INFO -f AUTHMatch Group sftpChrootDirectory /data/sftp/%uX11Forwarding noAllowTcpForwarding noForceCommand internal-sftp -l INFO -f AUTH
复制代码


凡是在用户组 sftp 里的用户,都可以使用 sftp 服务;使用 sftp 服务连接上之后,可访问目录为/data/sftp/username

案例说明

  • test 是一个 sftp 组的用户,它通过 sftp 连接服务器上之后,只能看到/data/sftp/test 目录下的内容

  • test2 也是一个 sftp 组的用户,它通过 sftp 连接服务器之后,只能看到/data/sftp/test2 目录下的内容


  1. 创建 sftp 用户,此例将创建一个名称为 test 的 sftp 帐号


#创建 test sftp 家目录:test 目录的所有者必须是 root,组最好设定为 sftp,权限不高于 755


mkdir /data/sftp/testchmod 0755 /data/sftp/testchown root:sftp /data/sftp/testuseradd -g sftp -s /sbin/nologin test #添加用户,参数-s /sbin/nologin禁止用户通过命令行登录
复制代码


  1. 创建 test 用户密钥对:


mkdir /home/test/.sshssh-keygen -t rsacp /root/.ssh/id_rsa.pub /home/test/.ssh/authorized_keyschown -R test.sftp /home/test
复制代码


在 test 目录下创建一个可以写的 upload 目录


mkdir /data/sftp/test/uploadchown -R test:sftp /data/sftp/test/upload
复制代码


注:sftp 服务的根目录的所有者必须是 root,权限不能超过 755(上级目录也必须遵循此规则),sftp 的用户目录所有者也必须是 root,且最高权限不能超过 755。


  1. 测试 sftp


service sshd restart
复制代码


发布于: 刚刚阅读数: 3
用户头像

洛神灬殇

关注

🏆 InfoQ写作平台-签约作者 🏆 2020-03-25 加入

【个人简介】酷爱计算机科学、醉心编程技术、喜爱健身运动、热衷悬疑推理的“极客达人” 【技术格言】任何足够先进的技术都与魔法无异 【技术范畴】Java领域、Spring生态、MySQL专项、微服务/分布式体系和算法设计等

评论

发布
暂无评论
【Linux技术专题系列】「必备基础知识」一起探索和实践sftp配置之密钥方式登录_Linux_洛神灬殇_InfoQ写作社区