Linux之搭建sftp
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。
相关知识点:
/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的更多相关文章
- linux 上搭建sftp服务
原文链接:https://www.cnblogs.com/yanduanduan/p/9046723.html sftp和ftp的区别 FTP是一种文件传输协议,一般是为了方便数据共享的.包括一个FT ...
- linux如何搭建sftp服务器
工具/原料 centos7.2_x64 方法/步骤 创建sftp组 groupadd sftp 创建完成之后使用cat /etc/group命令组的信息 2 创建一个sftp用户mysft ...
- Linux Centos 6.6搭建SFTP服务器
Linux Centos 6.6搭建SFTP服务器 在Centos 6.6环境使用系统自带的internal-sftp搭建SFTP服务器. 打开命令终端窗口,按以下步骤操作. 0.查看openssh的 ...
- Linux ---搭建SFTP服务器
在Centos 6.6环境使用系统自带的internal-sftp搭建SFTP服务器. 打开命令终端窗口,按以下步骤操作. 0.查看openssh的版本 ssh -V 使用ssh -V 命令来查看op ...
- windows 上搭建 sftp 服务器 -freesshd全过程( 在linux上部署逐浪CMS的必读教程)
文章标题: windows 上搭建 sftp 服务器 - freesshd全过程 关键字 : freesshd 文章分类: 教程 创建时间: 2020年3月23日 缘由 动手 第一步:添加用户 第二步 ...
- CentOS7.5 下搭建SFTP
CentOS7.5 下搭建SFTP Linux 创建用户组 groupadd sftp 创建用户test useradd -G sftp -s /sbin/nologin test -s 禁止用户ss ...
- centos6和ubuntu14搭建sftp
参考 http://blog.csdn.net/xinxin19881112/article/details/46831311 一. 在Centos 6.6环境使用系统自带的internal-sftp ...
- .Net Core实战教程(一):Linux下搭建项目
.Net Core实战教程(一):Linux下搭建项目 附言 .net core 1.0的时候就开始关注了,一直没有用于项目.真正用于项目我是2.0开始使用的.这几年也总结出一些经验.最近有空就写出来 ...
- 【转】Linux环境搭建FTP服务器与Python实现FTP客户端的交互介绍
Linux环境搭建FTP服务器与Python实现FTP客户端的交互介绍 FTP 是File Transfer Protocol(文件传输协议)的英文简称,它基于传输层协议TCP建立,用于Interne ...
- Linux环境搭建-在虚拟机中安装Centos7.0
最近在空闲时间学习Linux环境中各种服务的安装与配置,都属于入门级别的,这里把所有的学习过程记录下来,和大家一起分享. 我的电脑系统是win7,所以我需要在win7上安装一个虚拟机-VMware,然 ...
随机推荐
- 示例python 批量操作excel统计销售榜品牌及销售额
示例统计销售榜品牌及销售额 import pandas as pd import numpy as np import os os.chdir('F:\\50mat\源数据1000张表格') name ...
- c# 常用反射和表达式树整理
更新: 2021-06-19 反射 local function https://stackoverflow.com/questions/43348128/reflection-how-do-i-fi ...
- JAVA与.NET DES加密解密
项目需要在两个系统间采用DES加密,一个系统为JAVA开发的,另外一个.Net开发的 在网上找了很多写法但加密出的数据两个系统都无法匹配, 在做了小修改以后终于可以用了,已经测试过 JAVA版本 im ...
- pytorch中y.data.norm()的含义
import torch x = torch.randn(3, requires_grad=True) y = x*2 print(y.data.norm()) print(torch.sqrt(to ...
- C# 根据主键ID查询数据库的数据 反射和泛型实现
// 引入命名空间 using Zhu.ADO.NET.DBProxy; using Zhu.ADO.NET.Models.models; Console.WriteLine("====== ...
- Vue 路由的懒加载的作用
不会一次性加载全部的路由 ,使用哪个页面 就会加载哪个路由 : 可以优化spa页面首次加载 :
- find命令,查找文件
find 是 Linux 中强大的搜索命令,不仅可以按照文件名搜索文件,还可以按照权限.大小.时间.inode 号等来搜索文件. [root@localhost ~]#find 搜索路径 [选项] 搜 ...
- C# .netcore NPOI库 实现报表的列自适应删减
实际需求:业务上的一个需求,数据库表A中的B字段存放的是该条数据的一些标签,标签存在两级[即一级标签和二级标签], 现在要是实现将这些标签统计到报表中,一级标签作为表头,二级标签作为填充值. 由于之前 ...
- nginx配置tomcat的反向代理记录二,根据访问的路径跳转到不同端口的tomcat服务器
实现效果:使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中. 设置nginx 监听端口为 9001,访问 http://192.168.17.129:9001/vod/ 直接跳转到 1 ...
- vscode+码云(gitee),用git进行源代码管理
使用原因 对于我们经常换电脑来工作的人群,在公司工作完,回家里再用U盘或网盘复制/下载我们的代码,简直是一种折磨,一个项目中断后,时间久了再去想继续的时候,你会发现:到底哪个是最新版的?!U盘满了,这 ...