`
stephen830
  • 浏览: 2962599 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ssh sftp配置及权限设置

    博客分类:
  • sftp
 
阅读更多

 

 

从技术角度来分析,几个要求:
1、从安全方面看,sftp会更安全一点
2、线上服务器提供在线服务,对用户需要控制,只能让用户在自己的home目录下活动
3、用户只能使用sftp,不能ssh到机器进行操作
 
提供sftp服务,可以用系统自带的internal-sftp,也可以使用vsftpd,这里需求不多,直接选用internal-sftp。
 
限制用户只能在自己的home目录下活动,这里需要使用到chroot,openssh 4.8p1以后都支持chroot,我现在用的是CentOS 6.3,自带的openssh已经是5.3p1,足够了。
 
可以输入:
# ssh -V  
来查看openssh的版本,如果低于4.8p1,需要自行升级安装,不在这里具体介绍了。
 
假设,有一个名为sftp的组,这个组中的用户只能使用sftp,不能使用ssh,且sftp登录后只能在自己的home目录下活动
 
1、创建sftp组
# groupadd sftp  
 
2、创建一个sftp用户,名为mysftp
# useradd -g sftp -s /bin/false mysftp
# passwd mysftp
 
3、sftp组的用户的home目录统一指定到/data/sftp下,按用户名区分,这里先新建一个mysftp目录,然后指定mysftp的home为/data/sftp/mysftp
 
# mkdir -p /data/sftp/mysftp
# usermod -d /data/sftp/mysftp mysftp
 
4、配置sshd_config
编辑 /etc/ssh/sshd_config
 
# vim +132 /etc/ssh/sshd_config  
找到如下这行,并注释掉
Subsystem      sftp    /usr/libexec/openssh/sftp-server  
 
添加如下几行
Subsystem       sftp    internal-sftp  
Match Group sftp  
ChrootDirectory /data/sftp/%u  
ForceCommand    internal-sftp  
AllowTcpForwarding no  
X11Forwarding no  
 
解释一下添加的几行的意思
 
Subsystem       sftp    internal-sftp  
这行指定使用sftp服务使用系统自带的internal-sftp
 
Match Group sftp  
这行用来匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割
 
当然,也可以匹配用户
Match User mysftp
这样就可以匹配用户了,多个用户名之间也是用逗号分割,但我们这里按组匹配更灵活和方便
 
ChrootDirectory /data/sftp/%u  
用chroot将用户的根目录指定到/data/sftp/%u,%u代表用户名,这样用户就只能在/data/sftp/%u下活动,chroot的含 义,可以参考这里:http://www.ibm.com/developerworks/cn/linux/l-cn-chroot/
 
ForceCommand    internal-sftp  
指定sftp命令
 
AllowTcpForwarding no  
X11Forwarding no  
这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉
 
5、设定Chroot目录权限
# chown root:sftp /data/sftp/mysftp
# chmod 755 /data/sftp/mysftp
 
错误的目录权限设定会导致在log中出现”fatal: bad ownership or modes for chroot directory XXXXXX”的内容
 
目录的权限设定有两个要点:
1、由ChrootDirectory指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是root
2、由ChrootDirectory指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限
 
所以遵循以上两个原则
1)我们将/data/sftp/mysftp的所有者设置为了root,所有组设置为sftp
2)我们将/data/sftp/mysftp的权限设置为755,所有者root有写入权限,而所有组sftp无写入权限
 
6、建立SFTP用户登入后可写入的目录
照上面设置后,在重启sshd服务后,用户mysftp已经可以登录,但使用chroot指定根目录后,根应该是无法写入的,所以要新建一个目录供mysftp上传文件。这个目录所有者为mysftp,所有组为sftp,所有者有写入权限,而所有组无写入权限
 
# mkdir /data/sftp/mysftp/upload  
# chown mysftp:sftp /data/sftp/mysftp/upload  
# chmod 755 /data/sftp/mysftp/upload  
 
7、重启sshd服务
 
# service sshd restart  
 
到这里,mysftp已经可以通过sftp客户端登录并可以上传文件到upload目录。
如果还是不能在此目录下上传文件,提示没有权限,检查SElinux是否关闭,可以使用如下指令关闭SElinux
修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。或者
# setenforce 0
 
一开始,我以为是权限问题导致的无法上传文件,即使给777权限给文件夹也无法上传文件,关闭SElinux才可以正常上传。
 
 
分享到:
评论

相关推荐

    Centos下ssh以及sftp的配置以及权限设置

    Centos下配置ssh以及Vsftp

    linux操作系统下配置ssh/sftp和权限设置方法

    主要介绍了linux操作系统下配置ssh/sftp和权限设置方法 ,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

    详解Linux系统中设置SFTP服务用户目录权限的方法

    这些可以通过配置sftp服务实现。 方法如下 提供sftp服务的有vsftpd和internal-sftp,这里用的是系统自带的internal-sftp,操作步骤如下: 1.创建新用户ui,禁止ssh登录,不创建家目录 useradd -s /sbin/nologin -M ...

    Linux下SFTP用户权限设置条件及实现命令

    众所周知SFTP账号是基于SSH账号的,所以在默认情况下访问服务器的权限是非常大的,今天的教程就是教大家进行SFTP用户权限设置。必要条件: 你的openssh-server版本至少得失4.8p1, 因为配置权限需要版本添加的新配置...

    freeSSHd配置sftp服务器.doc

    SSH选项卡 这是配置SFTP服务端的,Listen address就是服务器的IP地址或者本机127.0.0.1,端口是默认22,为了安全可以改用其 他端口,不熟悉的话默认即可。command shell 必须是CMD命令程序的路径,默认是C:\Windows...

    Linux(CentOS)上配置 SFTP服务器

    相比传统的 ftp 服务,SFTP 显得更加方便、安全,一般系统安装了 ssh 后,默认就安装了这个服务,我们只要简单的配置一下就可以了。 但是 SFTP 账号是基于 SSH 账号的(也就是系统账户),默认情况下访问服务器的...

    linux下ftp的详细配置

    1:基于匿名用户FTP服务器的配置 2:基于系统用户FTP服务器的配置 3:基于虚拟用户FTP服务器的配置

    docker-rssh:SFTP,SCP和RSYNC的受限制安全外壳

    如果要让用户使用与主机文件系统相匹配的权限来更改安装的卷,则必须为用户设置自定义UID。 将卷挂载到用户的主文件夹中。 例子 单用户和批量 docker run \ -v /host/share:/home/foo/share \ -p 2222:22 -d ...

    Cyberduck 4.5.2官方中文版.rar

    Cyberduck一款免费且开源的FTP/SFTP客户端,支持FTP文件传输协议、SSH文件传输协议、S3/WebDAV/HTTP/SSL等连接。支持拖拽式上传文件,可以轻松连接云存储服务器,如果你经常使用云存储文件,可以试一试Cyberduck。可...

    xlight ftp服务器

    支持 SFTP(SSH2) 协议 - SFTP虚拟服务器现在能够象FTP虚拟服务器一样被创建和管理. 电子邮件事件通知 - 可以自动通过电子邮件通知FTP服务器的事件,如磁盘空间不足,用户上传,下载等. ODBC用户认证 - FTP用户账户,密码...

    Ubuntu权威指南(2/2)

    4.4.3 设置文件的访问权限 104 4.4.4 其他访问权限设置 106 第5章 文件和目录操作 107 5.1 创建文件 108 5.2 显示文件列表 108 5.2.1 使用ls命令显示文件 列表 108 5.2.2 利用通配符显示文件 110 5.2.3 显示隐藏文件...

    Ubuntu权威指南(1/2)

    4.4.3 设置文件的访问权限 104 4.4.4 其他访问权限设置 106 第5章 文件和目录操作 107 5.1 创建文件 108 5.2 显示文件列表 108 5.2.1 使用ls命令显示文件 列表 108 5.2.2 利用通配符显示文件 110 5.2.3 显示隐藏文件...

    docker-lamp:LAMP 应用程序的 Docker APSL 基础项目

    此映像旨在用作需要 sftp 和 ssh 访问权限的项目的基础 Dockerfile。 但是可能,如果您需要ssh访问,则说明您做错了;) envtpl 配置 apache mpm prefork 参数。 也可用于继承的 Dockerfile。 马戏团来控制进程。 ...

    wp-fuerte:WordPress MU插件可对具有wp-admin访问权限的用户强制实施某些针对安全性的限制

    并且,由于WP Fuerte充当WordPress的“,除非您有权访问服务器(FTP,SFTP,SSH,cPanel等),否则不能禁用它。 特征 配置您自己的超级用户,这些超级用户将不受WP Fuerte实施的更改和调整的影响。 为WP核心启用并...

    服务器安全技术详解.pptx

    信息泄露威胁消减措施(1/2):协议安全 基础安全强制规范 WEB安全开发规范 Apache加固规范 OS系统加固规范 安全加固规范 我们禁用 我们选择 Telnet(明文传输) SSH(加密传输) FTP(明文传输) SFTP(加密传输) ...

    CuteFTP9简易汉化版

    SFTP配置Options-CuteFTP给你巨大的控制你SFTP会话,包括选择加密密码,MAC(消息身份验证代码)类型、压缩和身份验证*机制使用。 SFTP身份Files-Use身份文件提供的主机或创建自己的密钥对进行身份验证。在创建自己的...

    java源码包---java 源码 大量 实例

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    java源码包2

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

Global site tag (gtag.js) - Google Analytics