Linux下sftp配置之密钥方式登录

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

 创建sftp服务用户组,创建sftp服务根目录

groupadd sftp

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

    mkdir /data/sftp
    chown -R root:sftp /data/sftp
    chmod -R 0755 /data/sftp

修改sshd配置文件

    cp /etc/ssh/sshd_config,_bk}  #备份配置文件
    sed -i '[email protected]#Port [email protected] [email protected]' /etc/ssh/sshd_config  #保证原来22端口可以
    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

详细说明

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

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

创建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禁止用户通过命令行登录

创建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。

测试sftp

service sshd restart

test用户密钥登陆如下图:

sftp_demo

技术分享

Linux ASLR漏洞:攻击者可无限禁用ASLR

2016-4-11 15:43:16

技术分享

Visual Studio Code 配置图文教程

2016-5-5 11:00:19

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索

关于我们

技术宅,专注分享,专注技术!分享互联网科技新闻轶事,分享生活小常识,各种数码使用小技巧!互联网的精神本就是分享,我们坚信分享会带来更多的进步!

Copyright © 2020 技术宅 苏ICP备17056378号 苏公网安备32010202010371号 - 查询 32 次,耗时 0.1640 秒 南京市玄武区酷芯壳网络科技中心 提供技术支持 安全联盟认证