0、查看openssh的版本

ssh -V
#使用ssh -V 命令来查看openssh的版本,版本必须大于4.8p1,低于的这个版本需要升级。
 

1、创建sftp组

groupadd sftp   
 

2、创建一个sftp用户,用户名为mysftp,密码为mysftp

#修改用户密码和修改Linux用户密码是一样的。
useradd -g sftp -s /bin/false mysftp //用户名
passwd mysftp 密码
 

3、sftp组的用户的home目录统一指定到/var/sftp下,按用户名区分,这里先新建一个mysftp目录,然后指定mysftp的home为/var/sftp/mysftp

mkdir -p /var/sftp/mysftp
usermod -d /var/sftp/mysftp mysftp
 

4、配置sshd_config

#文本编辑器打开 /etc/ssh/sshd_config
vim /etc/ssh/sshd_config
#找到如下这行,用#符号注释掉,大致在文件末尾处。
# Subsystem sftp /usr/libexec/openssh/sftp-server #在文件最后面添加如下几行内容,然后保存。 Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /var/sftp
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
 

5、设定Chroot目录权限

chown root:sftp /data/sftp/mysftp
chmod 755 /data/sftp/mysftp
 

6、建立SFTP用户登入后可写入的目录

#照上面设置后,在重启sshd服务后,用户mysftp已经可以登录。但使用chroot指定根目录后,根应该是#无法写入的,所以要新建一个目录供mysftp上传文件。这个目录所有者为mysftp,所有组为sftp,所有#者有写入权限,而所有组无写入权限。命令如下:

mkdir /var/sftp/mysftp/upload
chown mysftp:sftp /var/sftp/mysftp/upload
chmod 755 /var/sftp/mysftp/upload
 

7、修改/etc/selinux/config

#文本编辑器打开/etc/selinux/config
vim /etc/selinux/config
#将文件中的SELINUX=enforcing 修改为 SELINUX=disabled ,然后保存。 #在输入命令
setenforce 0
 

8、重启sshd服务

#输入命令重启服务。
service sshd restart
 

9、验证sftp环境

#用mysftp用户名登录,yes确定,回车输入密码。
sftp sftpuser@127.0.0.1
#显示 sftp> 则sftp搭建成功。
<sftp -oPort=22 sftpuser@127.0.0.1>
 

10、使用FileZilla FTP Client连接SFTP服务器

  输入主机IP地址、用户名、密码、端口连接SFTP服务器,端口默认为22。

相关知识点:

  

  /bin/false是最严格的禁止login选项,一切服务都不能用,
  /sbin/nologin只是不允许系统login,可以使用其他ftp等服务

如果想要用false在禁止login的同时允许ftp,则必须在/etc/shells里增加一行/bin/false。

知道了Linux用户管理最重要的两个文件就是/etc/passwd和/etc/shadow这两个文件。其中/etc/passwd是用来存储登陆用户信息的,它的基本格式如下:

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin

由上面的格式可以看出,每一行代表一个用户的信息,一共包括7个字段的信息,每个字段的信息用冒号隔开。这7个字段分别代表:

1. 账号名称:即登陆时的用户名
2. 密码:早期UNIX系统的密码是放在这个文件中的,但因为这个文件的特性是所有程序都能够读取,所以,这样很容易造成数据被窃取,因此后来就将这个字段的密码数据改放到/etc/shadow中了
3. UID:用户ID,每个账号名称对应一个UID,通常UID=0表示root管理员
4. GID:组ID,与/etc/group有关,/etc/group与/etc/passwd差不多,是用来规范用户组信息的
5. 用户信息说明栏: 用来解释这个账号是干什么的
6. 家目录:home目录,即用户登陆以后跳转到的目录,以root用户为例,/root是它的家目录,所以root用户登陆以后就跳转到/root目录这里
7. Shell:用户使用的shell,通常使用/bin/bash这个shell,这也就是为什么登陆Linux时默认的shell是bash的原因,就是在这里设置的,如果要想更改登陆后使用的shell,可以在这里修改。另外一个很重要的东西是有一个shell可以用来替代让账号无法登陆的命令,那就是/sbin/nologin。

Linux之搭建sftp的更多相关文章

  1. linux 上搭建sftp服务

    原文链接:https://www.cnblogs.com/yanduanduan/p/9046723.html sftp和ftp的区别 FTP是一种文件传输协议,一般是为了方便数据共享的.包括一个FT ...

  2. linux如何搭建sftp服务器

    工具/原料   centos7.2_x64 方法/步骤   创建sftp组 groupadd sftp 创建完成之后使用cat /etc/group命令组的信息   2 创建一个sftp用户mysft ...

  3. Linux Centos 6.6搭建SFTP服务器

    Linux Centos 6.6搭建SFTP服务器 在Centos 6.6环境使用系统自带的internal-sftp搭建SFTP服务器. 打开命令终端窗口,按以下步骤操作. 0.查看openssh的 ...

  4. Linux ---搭建SFTP服务器

    在Centos 6.6环境使用系统自带的internal-sftp搭建SFTP服务器. 打开命令终端窗口,按以下步骤操作. 0.查看openssh的版本 ssh -V 使用ssh -V 命令来查看op ...

  5. windows 上搭建 sftp 服务器 -freesshd全过程( 在linux上部署逐浪CMS的必读教程)

    文章标题: windows 上搭建 sftp 服务器 - freesshd全过程 关键字 : freesshd 文章分类: 教程 创建时间: 2020年3月23日 缘由 动手 第一步:添加用户 第二步 ...

  6. CentOS7.5 下搭建SFTP

    CentOS7.5 下搭建SFTP Linux 创建用户组 groupadd sftp 创建用户test useradd -G sftp -s /sbin/nologin test -s 禁止用户ss ...

  7. centos6和ubuntu14搭建sftp

    参考 http://blog.csdn.net/xinxin19881112/article/details/46831311 一. 在Centos 6.6环境使用系统自带的internal-sftp ...

  8. .Net Core实战教程(一):Linux下搭建项目

    .Net Core实战教程(一):Linux下搭建项目 附言 .net core 1.0的时候就开始关注了,一直没有用于项目.真正用于项目我是2.0开始使用的.这几年也总结出一些经验.最近有空就写出来 ...

  9. 【转】Linux环境搭建FTP服务器与Python实现FTP客户端的交互介绍

    Linux环境搭建FTP服务器与Python实现FTP客户端的交互介绍 FTP 是File Transfer Protocol(文件传输协议)的英文简称,它基于传输层协议TCP建立,用于Interne ...

  10. Linux环境搭建-在虚拟机中安装Centos7.0

    最近在空闲时间学习Linux环境中各种服务的安装与配置,都属于入门级别的,这里把所有的学习过程记录下来,和大家一起分享. 我的电脑系统是win7,所以我需要在win7上安装一个虚拟机-VMware,然 ...

随机推荐

  1. SPIE独立出版。遥感征稿中--2024年遥感与数字地球国际学术会议(RSDE 2024)

    ​ [成都,遥感主题,稳定EI检索]2024年遥感与数字地球国际学术会议(RSDE 2024) 2024 International Conference on Remote Sensing and ...

  2. 音视频处理三剑客之 AEC:回声产生原因及回声消除原理

    在上一期课程<音视频开发者进阶 -- 音频要素>中,我们从声音三要素.音频模拟信号的数字化和音频数字信号特征等方面,重新认识了"声音"这个老朋友.今天,我们会进一步聊聊 ...

  3. 【赵渝强老师】Kubernetes的探针

    Kubernetes提供了探针(Probe)对容器的健康性进行检测.实际上我们不仅仅要对容器进行健康检测,还要对容器内布置的应用进行健康性检测. Probe有以下两种类型: livenessProbe ...

  4. 智慧高校IT智能运维方案

    当前高校网络已成为每个学校必备的信息基础设施,也成了学校提高教学.科研及管理水平的重要途径和手段.随着信息化发展,高校网络建设逐步走向数字化.智慧化,传统的人力巡检.运维逐渐难以支撑高校校园稳定运行. ...

  5. Android Qcom USB Driver学习(三)

    usb hub区分端口 USB 子系统拓扑浅析 USB ID Database VendorID and ProductID usb usb1: New USB device found, idVen ...

  6. qemu的使用

    一.QEMU的运行模式 直接摘抄自己<揭秘家用路由器0day漏洞挖掘技术>,网上查了一下也没有找到令人满意的QEMU的使用说明,就采用这本书上的介绍.如果后期能够找到比较满意的QEMU的使 ...

  7. 精彩回顾|【ACDU 中国行·杭州站】数据库主题交流活动成功举办!

    8月19日下午,[ACDU 中国行·杭州站]在杭州西溪万怡酒店圆满落下帷幕.本次活动由中国数据库联盟(ACDU)联合墨天轮社区主办,蚂蚁集团 OceanBase 及亚信科技 AntDB 赞助支持.六位 ...

  8. 数据库小白看这里,这个Oracle数据库知识图谱你值得拥有(含MySQL、PG图谱)

    2022年前后,墨天轮社区曾陆续推出PostgreSQL知识图谱.MySQL知识图谱,并得到了大家的广泛好评.此后,便有众多朋友对Oracle知识图谱发起不断"催更".经过近期的内 ...

  9. 001 C#配置多个版本Swagger说明

    1. AddSwaggerGen AddSwaggerGen 是配置多个版本的swagger的关键 Path.Combine 当前项目运行的路径 UseSwaggerUI 主要分为 2 步骤  : 1 ...

  10. 快速部署sqlserver AlwaysOn集群

    点击查看代码 丐版sqlserver集群 之前试过docker的,k8s的,然后发现,还是最朴素的是最简单的,希望有大佬能够汉化,他妈的,那些英文看得人要发癫啊. 前置准备,参照丐版pxc集群: ht ...