美文网首页
2021-04-08 Linux搭建sftp服务及使用

2021-04-08 Linux搭建sftp服务及使用

作者: 什锦小沐 | 来源:发表于2022-05-22 18:41 被阅读0次

    一、简介

    参考:https://blog.csdn.net/cuker919/article/details/6403925

    说到sftp就要说ftp,简单来说:

    1. ftp要安装,sftp不要安装;

    2. sftp更安全,但更安全带来副作用就是的效率比ftp要低些,但据说差别不大

    3. ftp功能更强大,有支持的可操作的客户端

    二、搭建

    参考:https://www.cnblogs.com/reachos/p/11157329.html

    2.1 创建sftp用户组

    需要root权限,一般可使用 sudu su - ,或命令前面加sudo执行

    groupadd sftp

    可以使用 cat /etc/group 查看用户组信息

    2.2 向sftp用户组中增加sftp_test用户,并修改密码

    useradd -g sftp -s /bin/false sftp_test

    passwd sftp_test

    参数 -s /bin/false :最严格的禁止login选项,一切服务都不可用

    对应的是 -s /sbin/nologin 只是不允许系统login,可以使用其他ftp等服务

    2.3 新建sftp_test用户的home目录,并进行指定

    mkdir -p /app/sftp/sftp_test

    usermod -d /app/sftp/sftp_test

    2.4 修改ssh配置

    vim /etc/ssh/sshd_config

    将如下这行用#符号注释掉

    # Subsystem      sftp    /usr/libexec/openssh/sftp-server 

    并在文件最后面添加如下几行内容然后保存

    Subsystem      sftp    internal-sftp

    Match          Group  sftp

    ChrootDirectory /app/sftp/%u

    ForceCommand    internal-sftp

    AllowTcpForwarding      no

    X11Forwarding  no

    最后结果如图所示:

    sshd_config配置

    2.5 设置Chroot目录权限

    chown root:sftp /app/sftp/sftp_test

    chmod 755 /app/sftp/sftp_test

    注意:这里设置Chroot目录权限和上面配置中的ChrootDirectory应是同级目录,%u即表示用户

    2.6 新建一个目录供sftp_test用户上传下载文件

    这个目录所有者为sftp_test所有组为sftp,所有者有写入权限所有组无写入权限

    cd /app/sftp/sftp_test

    mkdir upload download

    chown sftp_test:sftp /app/sftp/sftp_test/upload

    chown sftp_test:sftp /app/sftp/sftp_test/download

    chmod 755 /app/sftp/sftp_test/upload

    chmod 755 /app/sftp/sftp_test/download

    注意:若/app目录不是root的话,还要执行 chown root /app ,将/app所有者设置为root

    这样的权限,不允许sftp_test在/app/sftp/sftp_test/目录下创建新目录、上传文件,但可以在/app/sftp/sftp_test/upload创建新目录、上传文件

    最终目录结构如图所示:

    sftp目录结构

    2.7 关闭selinux并重启sshd服务

    setenforce 0

    systemctl restart sshd.service

    也可以使用 systemctl status sshd.service ,查看sshd服务运行状态

    三、使用sftp服务

    参考:https://www.linuxprobe.com/linux-sftp-files.html

    3.1 连接

    连接命令:sftp 用户名@ip地址

    sftp sftp_test@127.0.0.1

    若需要指定端口

    sftp -oPort=22 sftp_test@127.0.0.1

    3.2 查看目录及基础命令

    进入sftp目录:cd upload/

    查看sftp目录文件:ls 、ls upload/

    查看当前所在的sftp目录:pwd

    查看本地目录文件:llslls upload/

    查看当前所在的本地目录:lpwd

    可以看出查看本地是比查看sftp多了“l”

    3.3 上传

    上传test.txt文件到sftp的当前目录:put test.txt

    上传本地sftp_test目录的全部文件到sftp的当前目录:put -r sftp_test/

    3.4 下载

    下载sftp当前目录的test.txt文件到本地的当前目录:get test.txt

    下载sftp的sftp_test目录的全部文件到本地的当前目录:get -r sftp_test/

    3.5 退出

    退出sftp:exit

    相关文章

      网友评论

          本文标题:2021-04-08 Linux搭建sftp服务及使用

          本文链接:https://www.haomeiwen.com/subject/jxumkltx.html