Ubuntu安装SFTP服务,及启动失败处理
安装openssh-server
sudo apt-get install openssh-server
查看是否安装成功
dpkg --get-selections | grep ssh
新建用户组 sftp-users,并新建用户sftp
为SFTP访问创建用户组,便于管理权限。并创建sftp用户:
sudo addgroup sftp-users
sudo adduser sftp
给sftp赋权并新建用户组ssh-users
将sftp从所有其他用户组中移除并加入到sftp-users组,并且关闭其Shell访问:
sudo usermod -G sftp-users -s /bin/false sftp
创建SSH用户组,并把管理员加入到该组(注意usermod中的-a参数的意思是不从其他用户组用移除)。
sudo addgroup ssh-users
sudo usermod -a -G ssh-users bbc2005
创建并设置sftp用户目录
准备“监狱”的根目录及共享目录,“监狱”的根目录必须满足以下要求:
所有者为root,其他任何用户都不能拥有写入权限。
因此,为了让sftp用户能够上传文件,还必须在“监狱”根目录下再创建一个普通用户能够写入的共享文件目录。
为了便于管理员通过sftp管理上传的文件,把这个共享文件目录配置为:由bbc2005所有,允许sftp-users读写。这样,管理员和sftp用户组成员就都能读写这个目录了。
sudo mkdir /home/sftp_root
sudo mkdir /home/sftp_root/shared
sudo chown bbc2005:sftp-users /home/sftp_root/shared
sudo chmod 770 /home/sftp_root/shared
修改SSH配置文件
vi /etc/ssh/sshd_config
在sshd_config文件的最后,添加以下内容:
AllowGroups ssh-users sftp-users
Match Group sftp-users
ChrootDirectory /home/sftp_root
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp
非常重要:
sftp设置后 ssh 启动失败 原因分析
大多数人 在 设置SFTP 使用时会报错,
排除其他可能的原因,可以尝试如下:将
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /data
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
放在
UseDNS no
之后就解决了。
重启ssh
service ssh restart
这些内容的意思是:
只允许ssh-uers及sftp-users通过SSH访问系统;
针对sftp-users用户,额外增加一些设置:
将“/home/sftp_root”设置为该组用户的系统根目录(因此它们将不能访问该目录之外的其他系统文件);
禁止TCP Forwarding和X11 Forwarding;强制该组用户仅仅使用SFTP。
如果需要进一步了解细节,可以使用“man sshd_config”命令。这样设置之后,SSH用户组可以访问SSH,并且不受其他限制;而SFTP用户组仅能使用SFTP进行访问,而且被关进监狱目录。
作者:我是非鱼
链接:https://www.jianshu.com/p/ff3c53e46a82
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
Ubuntu安装SFTP服务,及启动失败处理的更多相关文章
- centos7安装apache http server启动失败--Failed to start The Apache HTTP Server.
centos7安装apache http server启动失败 除了nginx可以开启http服务外,apche http server也可以开启http服务,安装过程如下:1. 首先,检测是 ...
- Centos7.3安装sftp服务和ssh
Centos安装SFTP 安装SFTP服务 1. 查看openssh版本 ssh -V openssh版本必须大于4.8p1 ...
- Ubuntu安装sysv-rc-conf配置开机启动服务
ubuntu下chkconfig的替代方案: 第一步:在终端键入sudo apt-get install sysv-rc-conf安装sysv-rc-conf服务. 第二步:检查设置系统开机自启动服务 ...
- Ubuntu安装SSH服务
1 SSH服务 Ubuntu默认并没有安装ssh服务,如果通过ssh远程连接到Ubuntu,需要自己手动安装ssh-server(openssh-server). 1.1 检测是否安装SSH服务 出现 ...
- 为Ubuntu安装SSH服务
只有当Ubuntu安装了SSH服务后,我们才能够通过ssh工具登陆Ubuntu.我自己喜欢使用x-shell作为终端工具 1.安装Ubuntu缺省安装了openssh-client,所以在这里就不安装 ...
- ubuntu升级内核后vmware-player启动失败
在虚拟机软件中,vmware player是对硬件支持很好的,通过它可以很方便的使用网银.单片机开发等等工作.但是最近ubuntu每次升级内核后,vmware都会启动失败,提示:Before you ...
- IIs管理服务一直启动失败的原因之一
首先eventlog里面的日志: 万维网发布服务(WWW 服务)没有为站点 1 注册 URL 前缀 https://*:8172/.该站点已被禁用.数据字段包含错误号. IISWMSVC_STARTU ...
- sql server2005安装时报 ‘服务无法启动’
SQL server服务无法启动的原因分析: 在安装SQL 2005标准版(不多于四个CPU)和企业版(无限制)时,CPU的总核数必须是2的n次方.即核心数为1,2,4,8,16,32依次类推.因BL ...
- centos设置服务开机启动失败问题
1.安装某服务设置开机启动的时候报错 [root@node1 ~]# systemctl enable lvm2-lvmetad.serviceThe unit files have no [Inst ...
随机推荐
- event.currentTarget
https://api.jquery.com/event.currentTarget/ event.currentTargetReturns: Element Description: The cur ...
- Ping链路测试
https://help.aliyun.com/knowledge_detail/40573.html?spm=5176.2020520165.121.d519.4b4f7029sHzfmi#TRAC ...
- bash脚本计算某程序的进程数
脚本里面有时候需要判断某个程序是否启动,以及有几个进程下面用nginx来做实例 显示所有的nignx进程 ps -ef|grep nginx |grep -v grep 其中grep -v grep表 ...
- SpEL 实例
SpEl 实例 基于 Spring 解析 @RestController @RequestMapping("/spel") @Slf4j public class SpELCont ...
- windows程序调试
由于不能在控制台输出,可以使用Messagebox 但是有时候要用到输出int之类的,需要转换.转换过程中有会有很多问题. 这里给出两个可行的代码 int a = 5, b = 10; int res ...
- 2019 ccpc 秦皇岛
D 如果1/n是有限小数,不停乘以10,一定在有限次之后成为一个整数. 10的质因子只有2和5,只要保证分母的质因子只有2和5即可 #include <iostream> #include ...
- spring的组件工厂后置处理器——BeanFactoryPostProcessor
作用和调用时机 spring有两种后置处理器: 1. 组件后置处理器——org.springframework.beans.factory.config.BeanPostProcessor: 2. 工 ...
- python调用c/c++时传递结构体参数
背景:使用python调用linux的动态库SO文件,并调用里边的c函数,向里边传递结构体参数.直接上代码 //test1.c # include <stdio.h> # include ...
- oracle-不完全数据库恢复-被动恢复-ORA-00313/ORA-00366
继上一篇不完全恢复 oracle-不完全数据库恢复-被动恢复-ORA-00313/ORA-00366 场景2:数据库拥有备份,CURRENT状态日志组中所有的在线日志头损坏,在发生日志切换时实例被自动 ...
- 【web前端】面题整理(2)
今天是520,单身狗在这里祝各位520快乐! DOM节点统计 DOM 的体积过大会影响页面性能,假如你想在用户关闭页面时统计(计算并反馈给服务器)当前页面中元素节点的数量总和.元素节点的最大嵌套深度以 ...