Linux如何限制sftp访问的IP,限制linux用户只能通过sftp访问服务器端资源

配置用户只能通过sftp访问服务端资源

1.新增用户,为了限制用户的登录方式,指定登录shell为/sbin/nologin,主目录为/data/test

useradd -s /sbin/shell -d /data/test test

建成后如下图示

1jF0j5y92ZPo+axYTVE95QRl6jDC7HQV7wT7QvR+gv45GANvPJPi60ILHBYFLNKt1mVBwAsZ8EtJtDBQSdIriZXMTM9K1am66PSVE0f8dKHqPkT7BNsnwXAm5DR7RU6EXkKcz814leegFhBARegEh5AW9gBAi0nkBIeTHoRcQQmqt9Q9omaDCg5mGGwAAAABJRU5ErkJggg==

2.修改用户密码

passwd test

输入密码回车即可。

3.更改用户主目录的所有者为root

chown root:root test

4.修改主目录访问权限为755

chmod 755 test

前面几步操作不正确时,通过sftp登录时会报如下错误:

Aug 24 16:32:28 FileServer sshd[28556]: User test not allowed because account is locked

Aug24 16:32:30 FileServer sshd[28556]: error: Could not get shadow information forNOUSER

Aug24 16:32:30 FileServer sshd[28556]: Failed password forinvalid user test from [ip] port [port] ssh2

或者是

Accepted password for 800002100010007 from 172.16.54.95 port 3145ssh2

Aug24 15:03:25 FileServer sshd[28171]: fatal: bad ownership or modes for chroot directory "/data/test"

以上错误日志记录在/var/log/messages文件中

如果使用winscp访问的话会提示拒绝访问或验证失败

5.限制用户通过sftp登录进来时只能进入主目录,修改/etc/ssh/sshd_config文件

vi /etc/ssh/sshd_config

注释掉#Subsystem      sftp    /usr/libexec/sftp-server

选择Subsystem       sftp    internal-sftp

# override default of no subsystems

#Subsystem sftp/usr/libexec/sftp-server

Subsystem sftp internal-sftp

在Match处输入目标用户信息

# Example of overriding settings on a per-user basis

#Match User anoncvs

# X11Forwarding no

# AllowTcpForwarding no

# ForceCommand cvs server

# test user

Match User test

ChrootDirectory/data/test

ForceCommand internal-sftp

修改完成后保存退出

6.测试sshd_config文件是否正确

sshd -T

7.重启sshd

service sshd restart

启动完成如下图:

wNOJAV7EAAxJDPAiBmBI98dAC1+UM01iAAb1JwYAGJMYABjaP9yozCd0yBAiAAAAAElFTkSuQmCC

配置完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值