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

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

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

    1. groupadd sftp

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

    1. mkdir /data/sftp
    2. chown -R root:sftp /data/sftp
    3. chmod -R 0755 /data/sftp

    2. 修改sshd配置文件

    1. cp /etc/ssh/sshd_config,_bk}  #备份配置文件
    2. sed -i 's@#Port 22@Port 22@' /etc/ssh/sshd_config  #保证原来22端口可以
    1. vi /etc/ssh/sshd_config

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

    1. Subsystem      sftp    /usr/libexec/openssh/sftp-server

    添加如下代码:

    1. Port 2222
    2. Subsystem sftp internal-sftp -l INFO -f AUTH
    3. Match Group sftp
    4. ChrootDirectory /data/sftp/%u
    5. X11Forwarding no
    6. AllowTcpForwarding no
    7. 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目录下的内容

    3. 创建sftp用户

    #此例将创建一个名称为test的sftp帐号

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

    1. mkdir /data/sftp/test
    2. chmod 0755 /data/sftp/test
    3. chown root:sftp /data/sftp/test
    4. useradd -g sftp -s /sbin/nologin test  #添加用户,参数-s /sbin/nologin禁止用户通过命令行登录

    创建test用户密钥对:

    1. # mkdir /home/test/.ssh
    2. # ssh-keygen -t rsa
    3. # cp /root/.ssh/id_rsa.pub /home/test/.ssh/authorized_keys
    4. # chown -R test.sftp /home/test

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

    1. mkdir /data/sftp/test/upload
    2. chown -R test:sftp /data/sftp/test/upload

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

    4. 测试sftp

    1. service sshd restart

    test用户密钥登陆如下图:

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

    Thu Jan 14 20:32:02 CST 2016

    • 本文由 发表于 2016-01-14
    • 转载请务必保留本文链接:https://linuxeye.com/437.html
    Consul集群配置 Linux

    Consul集群配置

    consul原理 上图是官网提供的一个事例系统图,图中的Server是consul服务端高可用集群,Client是consul客户端。consul客户端不保存数据,客户端将接收到的请求转发给响应的Se...
    匿名

    发表评论

    匿名网友