文章目录

  • 一、实战
    • 1. 创建sftp组:
    • 2. 创建一个用户sftpuser:
    • 3. 设置sftpuser用户的密码,会要求你输入两次密码确认:
    • 4. 创建一个sftp的上传目录:
    • 5. 修改用户sftpuser所在的目录:
    • 6. 配置sshd_config:
    • 7. 设定Chroot目录权限:
    • 8. 建立SFTP用户登入后可写入的目录
    • 9. 重启sshd服务:
    • 10. 测试是否能正常登陆:
    • 11. 关闭SElinux:
  • 二、常见问题
    • 2.1. 这里讨论了为什么要关闭这功能
    • 2.2. 连接异常

(附解决Write failed: Broken pipe Couldn’t read packet: Connection reset by peer)…

一、实战
1. 创建sftp组:
groupadd sftp
2. 创建一个用户sftpuser:
useradd -g sftp -s /bin/false sftpuser

#参数说明:
/etc/group 文件包含所有组
/etc/shadow /etc/passwd 系统存在的所有用户名

3. 设置sftpuser用户的密码,会要求你输入两次密码确认:
passwd sftpuser
4. 创建一个sftp的上传目录:
mkdir /app/data
5. 修改用户sftpuser所在的目录:
usermod -d /app/data sftpuser
6. 配置sshd_config:
vim /etc/ssh/sshd_config

如果没有vim,请执行

vi /etc/ssh/sshd_config

#找到如下这行,并注释掉
#Subsystem sftp /usr/libexec/openssh/sftp-server
#添加如下几行(如果添加之后出现问题,则添加到最后)

Subsystem sftp internal-sftp #这行指定使用sftp服务使用系统自带的internal-sftp
Match Group sftp #这行用来匹配用户组
ChrootDirectory /app/data  #用chroot将用户的根目录指定到/app/data ,这样用户就只能在/app/data 下活动
AllowTcpForwarding no
ForceCommand internal-sftp #指定sftp命令

为什么用 internal-sftp 而不用默认的 sftp-server,这是因为:
这是一个进程内的 sftp 服务,当用户 ChrootDirectory 的时候,将不请求任何文件;更好的性能,不用为 sftp 再开一个进程。
#保存退出

7. 设定Chroot目录权限:
chown -R root:root /app/data
chmod 755 /app/data
8. 建立SFTP用户登入后可写入的目录
mkdir /app/data/sftpuser
chown -R sftpuser:sftp /app/data/sftpuser/
chmod 755 /app/data/sftpuser/
9. 重启sshd服务:
service sshd restart
10. 测试是否能正常登陆:
#执行这一行命令,输入密码即可
sftp sftpuser@localhost
11. 关闭SElinux:
vim /etc/sysconfig/selinux

#找到如下这行
SELINUX=enforcing
#修改为
SELINUX=disabled
#保存退出

二、常见问题
2.1. 这里讨论了为什么要关闭这功能

https://www.zhihu.com/question/20559538

2.2. 连接异常
[root@localhost home]# sftp sftpuser@localhost
Connecting to localhost...
sftpuser@localhost's password:
Write failed: Broken pipe
Couldn't read packet: Connection reset by peer

这个问题,是由于用户组决定的,解决很简单
我的sftp前缀目录是/app/data
首先,咱们找到/app目录,查看他的权限,也就是用户组和用户

从上图,可以看出用户和户组都是root权限对吧,不要问为都是root,一句话,不是root,不好使。

然后,找到/app下面的data目录

从上图,可以看出用户和户组都是root权限对吧,不要问为都是root,一句话,不是root,不好使。

上面是sftpuser的限制活动的目录。

下面进入到,sftpuser登录后的目录看看权限是什么样的呢?

从上图,可以看出用用户是sftpuser、用户组是sftp权限对吧,不要问为这样设置,一句话,不这样设置,不好使。

完美解决!

这样问题不好发现,

补充:

我当初是怎样发现这个问题的呢?
搭建sftp服务器 只要不在/app目录下面创建都好使,但是在/app目录下面创建就是不好使,然后我就比对目录权限之间的区别,发现/app的用户是oracle 用户组是oinstall,怎样测试和配置都不好使。希望能够帮助到小伙伴们!

一分钟在Linux 环境 搭建 SFTP服务器相关推荐

  1. linux git服务器搭建端口号是多少,Linux 环境 搭建Git 服务器,并且修改SSH端口使用...

    1.环境配置说明 服务器 CentOS 7 + git(git version 1.8.3.1) 客户端 Windows10 + SourceTree 2.安装 Git 服务器端安装: sudo yu ...

  2. Linux 环境 搭建Git 服务器,并且修改SSH端口使用

    1.环境配置说明 服务器 CentOS 7 + git(git version 1.8.3.1) 客户端 Windows10 + SourceTree 2.安装 Git 服务器端安装: sudo yu ...

  3. Linux下搭建SFTP服务器

    文章目录 前言 1.创建用户 2.配置ssh和权限 3.测试 前言 sftp采用的是ssh加密隧道,安装性方面较ftp强,而且依赖的是系统自带的ssh服务,但速度较ftp慢.本次试验为虚拟机CentO ...

  4. linux环境搭建golang服务器,Linux下golang环境搭建-Go语言中文社区

    1.首先从使用wget https://storage.googleapis.com/golang/go1.12.linux-amd64.tar.gz命令下载安装包,可以根据自己的需要选择版本. 2. ...

  5. linux搭建ldap服务器详细步骤,linux环境搭建ldap服务器

    首先保证linux正常联网 yum install openldap-servers -y 拷贝配置文件 cd /usr/share/openldap-servers/ cp slapd.conf.o ...

  6. git ssh配置文件 服务器_Linux 环境 搭建Git 服务器,并且修改SSH端口使用

    1.环境配置说明 服务器 CentOS 7 + git(git version 1.8.3.1) 客户端 Windows10 + SourceTree 2.安装 Git 服务器端安装: sudo yu ...

  7. linux平台搭建ftp,Linux快速搭建FTP服务器

    FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(A ...

  8. linux创建sftp服务器,Linux Centos 6.6搭建SFTP服务器

    众所周知SFTP账号是基于SSH账号的,所以在默认情况下访问服务器的权限是非常大的.下面为SFTP用户权限设置方法. 必要条件: 你的openssh-server版本至少得失4.8p1, 因为配置权限 ...

  9. LINUX搭建SFTP服务器及脚本上行下载

    前言:公司业务中,需要我方搭建sftp服务器用来三方交换数据,而且其中一方是win10专线,所以还需在本地写上行与下载脚本 一.创建一个组(sftp) groupadd sftp (删除使用group ...

最新文章

  1. ​易生信-宏基因组积微学术论坛:基于大数据整合准确预测土壤的枯萎病发生...
  2. 五种常见的PHP设计模式
  3. c# forbidden.html,c# – 如何使用Forbidden状态web api返回ModelState
  4. 今天的一条条平坦的即时通讯
  5. 系统查找存储过程和触发器
  6. 在Web开发中完美控制IE标题栏
  7. Go黑魔法之导出私有函数与私有变量
  8. 文献搜索方法(转载)
  9. 基于STC89C52的自动循迹小车项目
  10. 食品类小程序有哪些?这3款小程序推荐给你
  11. android studio导入第三方库引发的问题和解决方法
  12. Github如何绑定域名
  13. 中国数学家黄金一代-北大数学专业2000级
  14. 学了编程却写出错误代码?程序运行结果与想象不符?当bug出现时该何去何从,别担心,这篇文章统统告诉你!手把手带你调试代码,让bug原形毕露!
  15. 宇视 VM 平台通过 onvif 协议添加的相机离线问题
  16. frontpage php,在 FrontPage 2003 中编辑 PHP的问题_在 FrontPage 2003 中编辑 PHP 及乱码问题 - 软件教程 - 格子啦...
  17. php ahp和jhp,基于AHP的建筑工程监理人员综合绩效考核研究
  18. 如果我不爱你…伤感日志分享
  19. Ios php格式视频,ios视频格式转换器,ios视频格式mov转mp4,视频格式转换器
  20. stdarg.h中三个宏va_start ,va_arg\va_end及vsprintf 的应用

热门文章

  1. 高考失常错过清华,而今保送清华直博,还发了数篇 Nature
  2. 数学的威力有多大?足以震慑全球......
  3. lucene详细说明文档
  4. 几个重要库函数的实现
  5. 业内首款云原生技术中台产品云原生 Stack 来了
  6. 过Serverless技术降低微服务应用资源成本
  7. 拿下 Gartner 容器产品第一,阿里云打赢云原生关键一战
  8. 如何利用DTS数据同步功能,快速创建数据同步作业
  9. 自然语言生成(NLG)的好处是什么,它如何影响BI?
  10. 阿里AI界的新伙伴,1秒钟自动生成20000条文案