centos安装sftp服务
一、创建sftp服务数据目录及相关测试用户
[root@localhost ~]# mkdir -pv /data/sftp/ #sftp数据目录
[root@localhost ~]# chown root:root -R /data/sftp/ #一定要是root用户,否则无法chroot
[root@localhost ~]# chmod -R /data/sftp/ #权限最低需要保证普通用户可以进入
[root@localhost ~]# groupadd sftp #sftp服务组,sftp服务可以设置匹配组或单个用户来设置,如果是单个用户可以忽略
[root@localhost ~]# useradd -d /data/sftp/user1 -m -g sftp -s /sbin/nologin user1
[root@localhost ~]# id user1
[root@localhost ~]# echo "" |passwd --stdin user1 #添加密码。测试环境从简,生产不建议此密码,可以通过网页 https://suijimimashengcheng.51240.com/ 或mkpasswd命令生产(需要安装expect软件包)
二、修改sshd服务配置文件,以组的方式管理sftp用户权限
修改前配置

修改后:

配置解释:
Subsystem sftp internal-sftp #使用sftp服务使用系统自带的internal-sftp
Match Group sftp #匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割
ChrootDirectory /data/sftp/%u #用chroot将用户的根目录指定到/data/sftp/%u,%u代表用户名,这样用户就只能在/data/sftp/%u下活动
ForceCommand internal-sftp #强制执行内部sftp,并忽略任何~/.ssh/rc文件中的命令
AllowTcpForwarding no #不允许转发TCP协议,默认是yes,如果用户可以shell访问则建议为yes
X11Forwarding no #是否允许进行 X11 转发。默认值是"no",设为"yes"表示允许。如果允许X11转发并且sshd()代理的显示区被配置为在含有通配符的地址(X11UseLocalhost)上监听。那么将可能有额外的信息被泄漏。由于使用X11转发的可能带来的风险,此指令默认值为"no"。需要注意的是,禁止X11转发并不能禁止用户转发X11通信,因为用户可以安装他们自己的转发器。如果启用了 UseLogin ,那么X11转发将被自动禁止。
重启服务,可能出现的错误:
[root@localhost ~]# systemctl restart sshd #重启服务
Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xe" for details.
[root@localhost ~]# tail /var/log/messages
Jul :: localhost systemd: Starting Session of user root.
Jul :: localhost systemd: Stopping OpenSSH server daemon...
Jul :: localhost systemd: Starting OpenSSH server daemon...
Jul :: localhost sshd: /etc/ssh/sshd_config line : Directive 'UseDNS' is not allowed within a Match block #报错信息
Jul :: localhost systemd: sshd.service: main process exited, code=exited, status=/n/a
Jul :: localhost systemd: Failed to start OpenSSH server daemon.
Jul :: localhost systemd: Unit sshd.service entered failed state.
Jul :: localhost systemd: sshd.service failed.
Jul :: localhost systemd: Started Session of user root.
Jul :: localhost systemd: Starting Session of user root.
这是因为UseDNS 在我们的sftp设置块下方,按我上面的配置就没有此问题了。
三、客户端连接测试
1.服务端为该用户目录授权
[root@localhost ~]# cd /data/sftp/
[root@localhost sftp]# ll
总用量
drwx------ user1 sftp -- : user1
[root@localhost sftp]# chown root:root user1
[root@localhost sftp]# chmod user1/
[root@localhost sftp]# cd user1/
[root@localhost user1]# mkdir upload
[root@localhost user1]# chown user1:sftp upload/
2.客户端测试连接
[root@localhost ~]# sftp user1@172.16.150.135 #注意连接的用户名
user1@172.16.150.135's password:
Connected to 172.16.150.135.
sftp> ls
upload
sftp> cd upload/
sftp> mkdir test
sftp> rmdir test
sftp> help #查看命令帮助
Available commands:
bye Quit sftp
cd path Change remote directory to 'path'
chgrp grp path Change group of file 'path' to 'grp'
chmod mode path Change permissions of file 'path' to 'mode'
chown own path Change owner of file 'path' to 'own'
df [-hi] [path] Display statistics for current directory or
filesystem containing 'path'
可能出现的报错:
packet_write_wait: Connection to 172.16.150.135 port : Broken pipe
Couldn't read packet: Connection reset by peer
出现以上报错,通常是因为用户的目录权限有问题,这也是sftp服务最容易出现问题的地方。我们只要抓住以下两个要点(原则)
由ChrootDirectory指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是root
由ChrootDirectory指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限
四、根据单个用户配置(其他参照组配置即可)
Match User zara_sftp #使用User关键字 后面接用户名
ChrootDirectory /data/sftp/zara_sftp #用户数据目录,注意权限
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
centos安装sftp服务的更多相关文章
- centos 安装sftp服务
打开命令终端窗口,按以下步骤操作. 0.查看openssh的版本 ssh -V 使用ssh -V 命令来查看openssh的版本,版本必须大于4.8p1,低于的这个版本需要升级. 1.创建sftp组 ...
- Centos7.3安装sftp服务和ssh
Centos安装SFTP 安装SFTP服务 1. 查看openssh版本 ssh -V openssh版本必须大于4.8p1 ...
- centos 安装memcache服务后memcahce本机连接Permission
自己手动在虚拟机下装了下memcache,整个过程真是充满波折,本身用php5.3安装memcache扩展就麻烦很多,无法通过yum直接安装,安装方法详见http://chenwei.me/blog/ ...
- Centos安装vncserver服务
vnc是一款Windows远程桌面软件,其优点是支持跨操作系统的远程图形化控制.下面开始记录第一次安装vnc服务的过程. 1.先检查系统是否有安装VNC服务 [root@localhost ~]# [ ...
- centos安装openoffice服务
第一步:yum install openoffice.org-brand openoffice.org-core openoffice.org-java-common xvfb openoffice. ...
- CentOS 安装nginx服务
安装nginx服务 sudo yum install nginx 启动nginx systemctl start nginx 加入启动项 systemctl enable nginx 测试nginx服 ...
- CentOS安装FTP服务
最近公司有一个内部比赛(黑客马拉松),报名参加了这么一个赛事,在准备参赛作品的同时(参赛服务器需要自己搭建),借着这个机会,决定把tomcat部署相关的知识从0到1重新捋一遍.就当备忘录了. FTP服 ...
- CentOS安装Openfire服务
原文::http://xiao987334176.blog.51cto.com/2202382/979677 系统是全新新安装的系统.版本号是Centos 5.6 x86 同步北京时间 # ntpda ...
- Centos安装vsftp服务
1.安装vsftp yum install vsftpd 2.开启vsftp服务,设置开机自启 service vsftpd restart chkconfig vsftpd on 停止vsftpd: ...
随机推荐
- Ansible varialbes
1.什么是变量? 以一个固定的字符串,表示一个不固定的值 version: 1.12 2.定义变量? 1.在playbook中定义变量? vars 关键字 [root@manager projec ...
- jsTree树插件
前言 关于树的数据展示,前后用过两个插件,一是zTree,二是jsTree,无论是提供的例子(可下载),还是提供的API在查找时的便捷程度,zTree比jsTree强多了,也很容易上手,所以这里只讲下 ...
- Android中设置状态栏颜色和字体颜色
1.在这里设置的状态栏背景为白色,字体为暗色 创建一个方法进行设置: protected void setStatusBar() { if (Build.VERSION.SDK_INT >= B ...
- AI 图像识别的测试
随着AI 的浪潮发展,AI 的应用场景越来越广泛,其中计算机视觉更是运用到我们生活中的方方面面.作为一个测试人员,需要紧跟上 AI 的步伐,快速从传统业务测试,转型到 AI 的测试上来.而人脸识别作为 ...
- Spring事务部分知识点整理
目录 1.数据库事务基础概念 2.Spring中注解事务的使用 3.Spring事务使用注意场景 1.数据库事务基础概念 数据库事务是对数据库一次一系列的操作组成的单元,可以包含增删改查或者只有单 ...
- DV型、OV型、EV型证书的主要区别
DV型和OV型证书的区别 DV和OV型证书最大的差别是:DV型证书不包含企业名称信息:而OV型证书包含企业名称信息,以下是两者差别对比表: DV OV 包含企业名称信息 否 是 验证公司名称 ...
- 关于重学Linux的随笔
毕业已有半年, 现在想想真的后悔, 大学没有认真学Linux, 导致现在Linux操作抓瞎, 连服务器都搭不起来. 下定决心重学Linux, 不追求能比上大佬, 但是要熟练, 常用命令要熟悉. 作为一 ...
- JVM 对象查询语言(OQL)[转载]
最近生产环境出现一个很奇怪的问题,测试环境无法重现,本地直连生产无法重现.于是用上 jmap + Java VisualVM 的 OQL (Object Query Language) 分析问题. 关 ...
- 什么是微信小程序?简单介绍
1.微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有色的使用体验. 2.手机端App的另外一种新的展现形式 3.无需下载过多占用手机内存的app,小程序直接打开 ...
- zookeper分布式搭建1
1.zookeper的下载与安装,见:https://www.cnblogs.com/wanerhu/p/11144815.html 2.准备三台centos,进入etc/hosts 3.编辑内容 映 ...