设为首页 收藏本站
查看: 1202|回复: 0

[经验分享] 在 Linux 中配置 SFTP 环境

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-9 08:32:30 | 显示全部楼层 |阅读模式
做运维的朋友,应该经常会碰到这样的问题,研发需要新上一个web项目,需要上传文件到服务器上,并且仅仅是上传项目,解决方法一边有两种,sftp和ftp,今天讲如何使用sftp让系统用户用户上传项目的权限,并且实现chroot和无法使用ssh登录到系统:    SFTP是指SSH文件传输协议(SSH File Transfer protocol)或安全文件传输协议(Secure File Transfer Protocol),它提供了可信数据流下的文件访问、文件传输以及文件管理功能。当我们为SFTP配置chroot环境后,只有被许可的用户可以访问,并被限制到他们的家目录中,换言之:被许可的用户将处于牢笼环境中,在此环境中它们甚至不能切换它们的目录。

我的环境:
1
2
3
4
5
[iyunv@test ~]# cat /etc/issue
CentOS release 6.6 (Final)
Kernel \r on an \m
[iyunv@test ~]# rpm -qa | grep openssh-server
openssh-server-5.3p1-104.el6.i686





  • 增加一个sftp用户组

1
[iyunv@test ~]# groupadd sftpusers



2.创建一个用户分配给sftp用户
1
[iyunv@test ~]# useradd -g sftpusers user01



3.修改用户家目录及指定不能登录shell
1
2
[iyunv@test ~]# mkdir /sftp/
[iyunv@test ~]# usermod -s /sbin/nologin -d /sftp/user01 -m user01



4.给用户创建密码(注意密码不明文显示)
1
2
3
4
5
6
7
8
[iyunv@test ~]# passwd user01
Changing password for user user01.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[iyunv@test ~]#



5.修改ssh的配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[iyunv@test ~]# ll /etc/ssh/sshd_config
-rw-------. 1 root root 3879 Oct 15  2014 /etc/ssh/sshd_config
[iyunv@test ~]# vim /etc/ssh/sshd_config

# line 132
#Subsystem      sftp    /usr/libexec/openssh/sftp-server    #注释
Subsystem       sftp    internal-sftp        #修改为internal-sftp

# add this lines at the end of file
Match Group sftpusers        #指定一下参数仅适用的用户组sftpusers
    X11Forwarding no
    AllowTcpForwarding no
    ChrootDirectory %h       #设置chroot将用户锁在家目录,%h=家目录               
    ForceCommand internal-sftp    #该参数强制执行内部sftp



6.重启ssh服务
1
2
3
[iyunv@test ~]# /etc/init.d/sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]



7.设置用户家目录权限
1
2
3
[iyunv@test ~]# chmod 0755 /sftp/user01/    #注意权限不能大于0755
[iyunv@test ~]# chown root /sftp/user01/   
[iyunv@test ~]# chgrp -R sftpusers /sftp/user01/



8.如果要上传的话...(bug我没什么解决的好办法)
1
2
3
#因为用户家目录属主是root,并且权限最大0755,所以没法写,我的解决方法是在在家目录建立一个#文件夹,作为上传目录,并把属主给user01即可。
[iyunv@test ~]# mkdir /sftp/user01/upload
[iyunv@test ~]# chown user01:sftpusers /sftp/user01/upload/



9.linux登录测试

1
2
3
4
5
6
7
8
9
10
11
12
[iyunv@test ~]# su - user01
This account is currently not available.    #su - 切换失败
[iyunv@test ~]# cat /etc/passwd | tail -1
user01:x:500:500::/sftp/user01:/sbin/nologin
[iyunv@test ~]# ssh user01@localhost
The authenticity of host 'localhost (::1)' can't be established.
RSA key fingerprint is f3:fc:31:dc:7d:16:d5:ad:8c:bc:eb:69:8f:b2:0b:c9.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
user01@localhost's password:
This service allows sftp connections only.    #ssh登录也失败,ssh设置成功
Connection to localhost closed.



10.sftp登录测试(我这里windows7用xshell,工具大同小异)
QQ截图20150709083214.png

成功登录:
QQ截图20150709083222.png
根目录下无法创建:
QQ截图20150709083230.png

upload下可以创建:
QQ截图20150709083237.png

好了,这篇博文就到这里了,完成今天的任务,对于根目录无法创建的原因,是因为linux的安全机制限制,另外如果有童鞋在操作过程中发现有不对的地方欢迎来和我讨论,我的邮箱:luchuanjia@msn.com


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-84543-1-1.html 上篇帖子: vsftp 使用虚拟目录 下篇帖子: 安装FTP服务器详解 Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表