快讯资讯
手机优化
系统数码
网络通信人工智能
网站游戏
测评专题

  Apache mod_deflate压缩模块       Nginx中文域名配置    

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

时间:2026-09-10 00:12 来源:未知 人气:

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

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

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

mkdir /data/sftp chown -R root:sftp /data/sftp chmod -R 0755 /data/sftp 2. 修改sshd配置文件 cp /etc/ssh/sshd_config,_bk}  #备份配置文件 sed -i 's@#Port 22@Port 22@' /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

举个例子:

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

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

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

4. 测试sftp service sshd restart

test用户密钥登陆如下图:

Thu Jan 14 20:32:02 CST 2016

本文标签:

更多文章

相关文章

网站导航 | 快讯 | 资讯 | 手机 | 优化

  • 数码 | 网络通信 | 人工智能 | 网站 | 游戏

    合作伙伴:

  • 友情链接(欢迎业界知名网站交换链接)申请友情

    

    声明:本站资源皆来自网络,如有侵权问题,请联系管理员处理!

    Copyright ©2020-2028快知站 版权所有 All rights reserved.

    闽ICP备20010713号-1 闽公网安备 35020602001684号