linux 帐号 配置sftp_linux 配置 SFTP

linux 配置 SFTP

1.安装ssh和openssh-sftp-server

2.建立用户组和用户

建立一个名为sftp-users的sftp用户组

sudo groupadd sftp-users

在该组建立几个需要登录sftp的用户

# 新建用户名为admin的用户:

sudo useradd -g sftp-users -m admin

# 修改admin的密码:

passwd admin

# 如果该用户已存在,但是不在sftp-users组中,可以移动用户到改组

usermod –g sftp_users admin

3.配置ssh和权限

打开/etc/ssh/sshd_config文件,修改或添加如下两条

AllowTcpForwarding = no

X11Forwarding = no

修改Subsystem sftp为internal-sftp

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

# 或者

Subsystem sftp /usr/lib/openssh/sftp-server

修改为:

Subsystem sftp internal-sftp

为什么用 internal-sftp 而不用默认的 sftp-server,这是因为:

这是一个进程内的 sftp 服务,当用户 ChrootDirectory 的时候,将不请求任何文件;

更好的性能,不用为 sftp 再开一个进程。

3.在文件末尾增加内容

Match Group sftp-users

ChrootDirectory %h

ForceCommand internal-sftp

Match Group sftp-users这一行是指定以下的子行配置是匹配sftp-users用户组的,多个用户组用英文逗号分隔。

ChrootDirectory %h该行指定Match Group行指定的用户组验证后用于chroot环境的路径,也就是默认的用户目录,比如/home/admin;也可以写明确路径,例如/data/www。

ForceCommand internal-sftp该行强制执行内部sftp,并忽略任何~/.ssh/rc文件中的命令。

4.修改sftp-users用户组用户目录权限

修改权限为root用户拥有

chown root /home/admin

修改权限为root可读写执行,其它用户可读

chmod 755 /home/admin

重启ssh,登录sftp

# Ubuntu 重启ssh

sudo service ssh restart

# CentOS 重启ssh

sudo systemctl restart sshd.service

# CentOS 设置开机启动

sudo systemctl enable sshd.service

在用户目录下建立子upload目录,让sftp-users中的用户可读写文件

cd /home/admin/

mkdir upload

授权upload文件夹读写

让子文件夹upload属于admin

chown admin /home/admin/upload

让子文件夹upload被admin读写

chmod 755 /home/admin/upload

重启ssh,登录sftp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值