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

由于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用户密钥登陆如下图:

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

本文标题: Linux 下sftp配置之密钥方式登录详解

本文地址: http://www.cppcns.com/os/linux/175110.html

linux 帐号 配置sftp_Linux 下sftp配置之密钥方式登录详解相关推荐

  1. 三星s7共享网络给linux,三星Galaxy S7WiFi状态下可以共享wifi热点吗【详解】

    目前,越来越多的智能手机都具有wifi热点的功能,不仅方便了不少网友之间的网络流量共享,而且一个wifi热点还可以共享到多个设备.而三星最新款手机三星Galaxy S7与S7 Edge在wifi热点功 ...

  2. 如何在微信公众帐号开发模式下,通过程序代码向用户发送符号表情。

    本文重点介绍如何在微信公众帐号开发模式下,通过程序代码向用户发送符号表情.部分代码来自:FreeEIM 至于如何识别用户发送的是符号表情,就不在此讲解了,留给大家一点学习思考的空间.我只是给大家一个提 ...

  3. 如何在微信公众帐号开发模式下,通过程序代码向用户发送符号表情

    本文重点介绍如何在微信公众帐号开发模式下,通过程序代码向用户发送符号表情.部分代码来自:FreeEIM 至于如何识别用户发送的是符号表情,就不在此讲解了,留给大家一点学习思考的空间.我只是给大家一个提 ...

  4. linux添加nginx,linux下安装Nginx1.16.0的教程详解

    因为最近在倒腾linux,想安装新版本的nginx,找了一圈教程没有找到对应的教程,在稍微倒腾了一会之后终于成功的安装了最新版. 服务器环境为centos,接下来是详细步骤: 安装必要依赖插件 ? 创 ...

  5. linux下安装mysql_Linux下安装mysql-8.0.20的教程详解

    ** Linux下安装mysql-8.0.20 ** 环境介绍 操作系统:CentOS 7 mysql下载地址:https://dev.mysql.com/downloads/mysql/ 下载版本: ...

  6. linux nginx编译详解,Linux下nginx编译安装教程和编译参数详解

    这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备 1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码 代码如下:# ...

  7. 华为交换机端口不配置access_华为交换机的配置及:access、trunk、hybird端口详解...

    原标题:华为交换机的配置及:access.trunk.hybird端口详解 很多人朋友多次问到华为交换机的配置,确实用的比较多,上次我们有单独提到h3c交换机的配置,今天我们来了解下华为交换机的配置, ...

  8. Linux下的tar归档及解压缩功能详解

    Linux下的tar归档及解压缩功能详解 一.Linux下解压缩工具 二.gzip工具的使用方法 三.其他解压缩工具 一.Linux下解压缩工具 二.gzip工具的使用方法 三.其他解压缩工具 一.L ...

  9. linux中etc下的hosts(本地IP解析)文件详解

    linux中etc下的hosts(本地IP解析)文件详解 1./etc/hosts(本地解析) 很多人一提到更改hostname首先就想到修改/etc/hosts文件, 认为hostname的配置文件 ...

最新文章

  1. c语言实验报告管理系统,C语言实验报告-学生信息资管理系统.doc
  2. 致广州达到信息技术有限公司
  3. 在String.Format [复制]中转义大括号'{'
  4. shell 获取文件最后一行
  5. 区块链 稳定币和法定数字货币简介
  6. 『TensorFlow』专题汇总
  7. win10 64 安装VSS2005报错,解决方法。
  8. js获取url的参数
  9. SAP特性,物料特性,批次特性建立的BAPI函數
  10. XE Delphi 判断字符为中文的方法
  11. html表单输入的文本框的值,网页设计关于表单输入框的技巧代码
  12. Linux网络编程:原始套接字的魔力【续】
  13. idea中运行maven安装jar包到本地仓库跳过test
  14. python os 常用方法_【Python 库】os 模块常用方法简介
  15. js、jQuery实现文字上下无缝轮播、滚动效果
  16. python实现随机生成列表,得到列表中位数并以此划分源列表
  17. 让游戏画面会说话,游戏音效制作有讲究
  18. 【APICloud系列|34】上架华为应用市场缺少免责函?
  19. 如何协助企业IT架构转型
  20. Daytime服务器

热门文章

  1. 基于内容的视频语义标注(一)——视频标注的三种方法和不同层次划分标注
  2. python函数的基本使用_Python学习笔记——主要函数及基本使用(与C的对比)
  3. mysql查球队胜场和败场sql_NBA球队_nba有哪些球队_NBA史上实力最弱的球队是哪个?用Python+SQL我们找到了答案...
  4. configparser模块简介
  5. 07-人脸识别-人脸矫正
  6. OC与Swift混编
  7. zabbix--3.0--3
  8. foundation 数组NSArray学习
  9. django - 修改 自增长id,起始值
  10. 设置或者获取CheckboxList控件的选中值