ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux 安装sftp

2020-08-06 12:01:49  阅读:236  来源: 互联网

标签:安装 转发 用户 sftp clptsftp linux root data


1、定义sftp的数据目录

mkdir -p /data/sftp

2、将目录归到root用户,否则无法chroot

chown root. -R /data/sftp/或者chown root:root -R /data/sftp/

3、权限设置为755,不能超过755,保证普通用户可以进入

chmod 755 -R /data/sftp/

4、添加sftp服务组,sftp服务可以设置匹配组或单个用户来设置,如果是单个用户可以忽略

groupadd sftp

5、添加用户

useradd -d /data/sftp/clptsftp -m g sftp -s /sbin/nologin clptsftp

验证用户

id clptsftp

添加密码  #添加密码。测试环境从简,生产不建议此密码,可以通过网页 https://suijimimashengcheng.51240.com/ 或mkpasswd命令生成密码(需要安装expect软件包)

echo "123456" | passwd --stdin clptsftp

或者通过passwd clptsftp

sftp组的用户的home目录统一指定到/data/sftp下,按用户名区分,这里先新建一下clptsftp

下面三行的操作可通过添加用户的时候指定-d来指定,如上面第五步,如果第五步使用useradd g sftp -s /sbin/nogin clptsftp命令的话,就要使用下面三行

mkdir -p /data/sftp/clptsftp

使用usermod 命令,更改用户的home目录,且以用户名区分,

usermod -d /data/sftp/clptsftp clptsftp

 

cd /data/sftp

ls

chown root:sftp clptsftp或者这里可以使用root:root,需要验证一下

chmod 755 clptsftp

cd clptsftp

mkdir resourceupload

chown clptsftp:sftp resourceupload/

 

修改sshd服务配置文件,以组的方式管理sftp用户权限

vi /etc/ssh/sshd_config

注释掉:Subsystem      sftp    /usr/libexec/openssh/sftp-server行

 

 ------------------

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(8)代理的显示区被配置为在含有通配符的地址(X11UseLocalhost)上监听。那么将可能有额外的信息被泄漏。由于使用X11转发的可能带来的风险,此指令默认值为"no"。需要注意的是,禁止X11转发并不能禁止用户转发X11通信,因为用户可以安装他们自己的转发器。如果启用了 UseLogin ,那么X11转发将被自动禁止。

在文件最后面添加如下几行内容,然后保存。
Subsystem       sftp    internal-sftp  
Match Group sftp  
匹配sftp组的用户,如果有多个组用逗号分割 也可以使用“Match User mysftp”匹配用户,多个用户之间也是用逗号分割
ChrootDirectory /data/sftp/%u  
用chroot将用户的根目录指定到/data/ftp/%u,%u代表用户名,%h表示用户根目录
ForceCommand    internal-sftp  
指定sftp命令
AllowTcpForwarding no
 
X11Forwarding no
禁止用户使用端口转发 建立用户和组放

------------------

5、设定Chroot目录权限
chown root:sftp /data/sftp/clptsftp
chmod 755 /data/sftp/clptsftp


6、建立SFTP用户登入后可写入的目录
照上面设置后,在重启sshd服务后,用户mysftp已经可以登录。但使用chroot指定根目录后,根应该是无法写入的,所以要新建一个目录供mysftp上传文件。这个目录所有者为mysftp,所有组为sftp,所有者有写入权限,而所有组无写入权限。命令如下:

mkdir /data/sftp/clptsftp/resourcesupload
chown clptsftp:sftp /data/sftp/clptsftp/resourcesupload
chmod 755 /data/sftp/clptsftp/resourcesupload

7、修改/etc/selinux/config
文本编辑器打开/etc/selinux/config

vi /etc/selinux/config
将文件中的SELINUX=enforcing 修改为 SELINUX=disabled ,然后保存。

在输入命令

setenforce 0

8、重启sshd服务
输入命令重启服务。

service sshd restart

9、验证sftp环境
用mysftp用户名登录,yes确定,回车输入密码。
sftp mysftp@127.0.0.1
显示 sftp> 则sftp搭建成功。

10、使用FileZilla FTP Client连接SFTP服务器

输入主机IP地址、用户名、密码、端口连接SFTP服务器,端口默认为22。

 

标签:安装,转发,用户,sftp,clptsftp,linux,root,data
来源: https://www.cnblogs.com/binjia/p/13445422.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有