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

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

时间:2023-01-22 13:55:07浏览次数:37  
标签:sshd 基础知识 ssh Linux test sftp data 目录

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/sftp
chmod -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 2222
Subsystem sftp internal-sftp -l INFO -f AUTH
Match Group sftp
ChrootDirectory /data/sftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand 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/test
chmod 0755 /data/sftp/test
chown root:sftp /data/sftp/test
useradd -g sftp -s /sbin/nologin test #添加用户,参数-s /sbin/nologin禁止用户通过命令行登录
  1. 创建test用户密钥对:
mkdir /home/test/.ssh
ssh-keygen -t rsa
cp /root/.ssh/id_rsa.pub /home/test/.ssh/authorized_keys
chown -R test.sftp /home/test

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

mkdir /data/sftp/test/upload
chown -R test:sftp /data/sftp/test/upload

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

  1. 测试sftp
service sshd restart

标签:sshd,基础知识,ssh,Linux,test,sftp,data,目录
From: https://www.cnblogs.com/liboware/p/17064409.html

相关文章

  • LINUX学习之网络配置(十一)
    1.修改IP地址使用ifconfig命令例如要将eth0接口的IP地址更改为192.168.1.100,你可以使用以下命令ifconfigeth0192.168.1.100如果你想为IP地址设置子网掩码,可以使用......
  • LINUX学习之管道和重定向(十)
    输入/输出流控制在Linux系统中,执行一个shell命令通常会自动打开三个标准文件,分别是标准输入文件、标准输出文件和标准错误输出文件。进程将从标准输入文件得到输入数......
  • 使用 U盘安装ubuntu linux全过程
     001、准备一个大于8G的U盘 002、打开ultraiso官网  003、双击下载好的安装包  004、点击是  005、点击我接受协议   006、点击下一步......
  • Linux系统入门-VIM编辑器
    VIM编辑器有三种模式1、命令模式2、输入模式3、末行模式vimreadme123.txt运行vim,默认进去命令模式末行模式输入:键盘,可以进入末行模式常用的命令为:W--------保存:q---------......
  • 利用 UltraISO 制作linux U盘的启动盘
     001、双击打开 UltraISO软件  002、点击继续使用  003、点击此处的文件夹图标  004、选择提前下载好的linuxISO文件,然后点击打开   005、......
  • linux环境编程(1): 实现一个单元测试框架
    写在前面在开发的过程中,大多数人都需要对代码进行测试。目前对于c/c++项目,可以采用google的gtest框架,除此之外在github上搜索之后可以发现很多其他类似功能的项目。但把别......
  • syslinux引导扇区不支持NTFS文件系统
      在使用UltraISO制作ubuntu启动U盘时遇到如下报错 001、问题     以下是解决方法:002、  003、  004、  005、 ......
  • Linux下第一个C语言程序
    前置环境1.系统版本:centos7。2.已安装gcc用命令gcc-v查看gcc版本。3.根据自己编程风格选择路径创建代码文件夹mkdir(可递归创建)、rmdir(删除文件夹)。4.vimhelloWorl......
  • LINUX学习之用户及用户组管理(九)
    用户账号管理用户账号的管理涉及添加、删除和修改用户账号信息。而这些操作实际上就是对/etc/passwd文件进行更新useradd命令描述useradd命令用于添加新用户,以下是u......
  • Linux系统文件和目录(持续更新)
    前置环境1.windows11下虚拟机安装CentOS7、windows下安装finalshell2.centos7终端ifconfig查看虚拟机ip地址,finalshell中配置连接(为方便使用)初始文件目录环境1.图形化......