CentOs7 配置sftp及sftp常用命令

配置sftp

1.创建sftp服务用户组,创建sftp服务根目录:

groupadd sftp

2.创建sftp服务用户:

useradd -g sftp -s /sbin/nologin -d /ftpuser ftpuser

-s /sbin/nologin 禁止用户通过命令行登录
dsy 用户名
-d 指定用户的登入目录 此处指定为/ftpuser是因为第六步中我们限制sftp登录用户的根目录为/home/sftp,所以实际用户登录后,最终指定目录为`/home/sftp/ftpuser

3.为sftp账户添加密码

passwd ftpuser

输入密码时不会明文显示

4.创建用户ftp文件目录

mkdir /home/sftp/ftpuser

5.修改文件夹拥有者

chown -R ftpuser:sftp /home/sftp/ftpuser1

让ftpuser登录后对该目录有所有的权限,缺少这一步会出现sftp登录后无法写入文件的异常
-R 递归修改子目录

6.配置sshd_config:

vim /etc/ssh/sshd_config

注释掉下面这一行:

Subsystem  sftp    /usr/libexec/openssh/sftp-server

也就是在前面加上 #

在sshd_config最后加入下面这几行:

# 匹配用户组,如果要匹配多个组,多个组之间用逗号分割
Match Group sftp
# 限制ftpuser用户的根目录
ChrootDirectory /home/sftp
# 指定 sftp 命令
Subsystem sftp internal-sftp

上面这段代码务必放在最后,因为必须要“UseDNS no”后面
不知道Vim编辑器如何使用的可以参考这篇博客:Linux目录结构及常用命令学习笔记

7.重启sshd:

systemctl restart sshd

8.测试:

sftp ftpuser@127.0.0.1

ip地址我直接写的本机,实际过程中请写正确的ip地址

目录的权限设定有两个需要注意的地方(默认情况下不需要去更改,除非你修改过/home或/home/sftp的权限)

1.ChrootDirectory指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是root
2.由ChrootDirectory指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限

sftp常用命令

cd 路径 					进入某路径
lcd 						路径` 更改本地目录到某路径”
chgrp group a.txt  			将文件a.txt的组更改为group
chmod 777 a.txt  			将文件a.txt的权限更改为777
chown owner a.txt  			将文件a.txt的属主更改为owner
exit 						退出 sftp 
quit 						退出 sftp 
get 远程路径  				下载文件 
ln existingpath linkpath  	符号链接远程文件 
ls [参数] [路径] 			显示远程目录列表 
lls [参数] [路径] 			显示本地目录列表 
mkdir 路径 					创建远程目录 
lmkdir 路径   				创建本地目录 
mv oldpath newpath 			移动远程文件 
put 本地路径   				上传文件 
pwd 						显示远程工作目录 
lpwd 						打印本地工作目录 
rmdir 路径  				删除远程目录 
lrmdir 路径   				移除删除目录 
rm 路径  					删除远程文件 
lrm 路径   					删除本地文件 
发布了17 篇原创文章 · 获赞 6 · 访问量 901

猜你喜欢

转载自blog.csdn.net/weixin_43838446/article/details/104985197