一、安装
本实验的环境为centos7.6
查看sftp运行需要安装的rpm包,一般来说,这些包都是默认安装的,如果没有就自己安装下
rpm -qa | grep ssh
openssh-server-7.4p1-16.el7.x86_64 libssh2-1.4.3-12.el7.x86_64 openssh-clients-7.4p1-16.el7.x86_64 openssh-7.4p1-16.el7.x86_64
复制
创建用户组和用户
groupadd sftp
useradd -g sftp -s /sbin/nologin -d /data sftpuser
passwd sftpuser
修改目录所属用户和组,sftp的家目录所属用户必须是root
chown root:sftp /data
chmod 755 /data
建立子目录,用于sftp存放文件
mkdir -p /data/ftpdata
chown sftpuser:sftp /data/ftpdata
在ssh参数文件的末尾添加
vi /etc/ssh/sshd_config
Match User sftpuser ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /data PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no
复制
重启sshd
systemctl restart sshd
二、连接
sftp sftpuser@ip
在sftp中执行pwd,ls,mkdir,cd查看的是远端的目录和文件,
执行lpwd,lls,lcd查看的是本地的目录和文件,
上传使用put,下载使用get。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
*LINUX自带sftp服务,即只要能登录系统就能通过该用户连接sftp*
*以下的步骤是用来安装非登录用户,但使用sftp*
创建用户,该用户无法通过ssh登录
useradd -s /sbin/nologin sftpuser1
echo sftpuser1 | passwd sftpuser1 --stdin
mkdir -p /data
mkdir /data/sftpuser1
#sftp的家目录所属用户必须是root(如果只读,以下两条命令可以不用做)
chown root:sftpuser1 /data/sftpuser1
chmod 775 /data/sftpuser1
cat /etc/ssh/sshd_config
-------------------------------------
Match User sftpuser1
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /data/sftpuser1
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
通过嵌套创建目录的方式可以实现一个账号只读一个账号可写
1年前

评论
相关阅读
[MYSQL] 服务器出现大量的TIME_WAIT, 每天凌晨就清零了
大大刺猬
149次阅读
2025-04-01 16:20:44
[MYSQL] query_id和STATEMENT_ID在不同OS上的关系
大大刺猬
69次阅读
2025-03-26 19:08:13
udev 针对单个设备进行规则触发
许玉冲
52次阅读
2025-03-22 15:15:24
[Linux] 有趣(花里胡哨)的终端显示
大大刺猬
43次阅读
2025-03-27 18:24:39
误删/lib64/libc.so.6文件如何恢复
- 我用我一生来爱你°
36次阅读
2025-03-27 17:21:52