Linux限制某些用户或IP登录SSH、允许特定IP登录SSH

1、限制用户SSH登录

只允许指定用户进行登录(白名单):

在/etc/ssh/sshd_config配置文件中设置AllowUsers选项,(配置完成需要重启 SSHD 服务)格式如下:

AllowUsers aliyun test@192.168.1.1
#允许 aliyun 和从 192.168.1.1 登录的 test 帐户通过 SSH 登录系统。
只拒绝指定用户进行登录(黑名单):

在/etc/ssh/sshd_config配置文件中设置DenyUsers选项,(配置完成需要重启SSHD服务)格式如下:

DenyUsers zhangsan aliyun #Linux系统账户
#拒绝 zhangsan、aliyun 帐户通过 SSH 登录系统
重启SSH

service sshd restart
2、限制IP SSH登录

说明:这里的IP是指客户端IP,不是服务器IP,下面的例子使用了hosts.allow文件的配置方式,目的是快,但也有不灵活的,建议改成iptables的方案。

除了可以禁止某个用户登录,我们还可以针对固定的IP进行禁止登录,linux 服务器通过设置/etc/hosts.allow和/etc/hosts.deny这个两个文件,hosts.allow许可大于hosts.deny可以限制或者允许某个或者某段IP地址远程 SSH 登录服务器,方法比较简单,且设置后立即生效,不需要重启SSHD服务,具体如下:

/etc/hosts.allow添加

sshd:192.168.0.1:allow #允许 192.168.0.1 这个IP地址SSH登录
sshd:192.168.0.:allow #允许192.168.0.1/24这段IP地址的用户登录,多个网段可以以逗号隔开,比如192.168.0.,192.168.1.:allow
/etc/hosts.allow添加

sshd:ALL #允许全部的ssh登录
hosts.allow和hosts.deny两个文件同时设置规则的时候,hosts.allow文件中的规则优先级高,按照此方法设置后服务器只允许192.168.0.1这个IP地址的SSH登录,其它的IP都会拒绝。

/etc/hosts.deny添加

sshd:ALL #拒绝全部IP
针对hosts.deny的参考:http://www.cnblogs.com/EasonJim/p/8338931.html

解决Host key verification failed.(亲测有效)

一、发现问题
问题如下图代码:

$ ssh root@108.61.163.242
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:HDjXJvu0VYXWF+SKMZjSGn4FQmg/+w6eV9ljJvIXpx0.
Please contact your system administrator.
Add correct host key in /Users/wangdong/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/wangdong/.ssh/known_hosts:46
ECDSA host key for 108.61.163.242 has changed and you have requested strict checking.
Host key verification failed.

这里面,有一句很关键。

ECDSA host key for 108.61.163.242 has changed and you have requested strict checking.
Host key verification failed.

一般这个问题,是你重置过你的服务器后。你再次想访问会出现这个问题。

二、解决问题
解决问题也很简单:

ssh-keygen -R 你要访问的IP地址
1
例如:

ssh-keygen -R 108.61.163.242

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Linux中,您可以使用以下方法限制SSH登录用户: 1. 使用`/etc/ssh/sshd_config`文件:编辑SSH服务器配置文件`sshd_config`,通常位于`/etc/ssh/`目录下。找到并修改以下行: - `AllowUsers`:在该行后添加要允许登录用户名列表,这些用户将被允许登录。例如: ``` AllowUsers john jane ``` - `DenyUsers`:在该行后添加要拒绝登录用户名列表,这些用户将被禁止登录。例如: ``` DenyUsers test ``` - `AllowGroups`:在该行后添加要允许登录用户组列表,属于这些用户组的用户将被允许登录。例如: ``` AllowGroups sshusers ``` - `DenyGroups`:在该行后添加要拒绝登录用户组列表,属于这些用户组的用户将被禁止登录。例如: ``` DenyGroups ftpusers ``` 保存文件并重新启动SSH服务以使更改生效。 2. 使用`/etc/hosts.allow`和`/etc/hosts.deny`文件:您可以使用这两个文件来限制SSH登录。编辑`/etc/hosts.allow`文件,添加以下行: ``` sshd: <允许登录IP地址IP地址范围> ``` 编辑`/etc/hosts.deny`文件,添加以下行: ``` sshd: ALL ``` 这将拒绝除了在`hosts.allow`文件中指定的IP地址之外的所有SSH连接。 3. 使用防火墙:配置防火墙以允许特定IP地址IP地址范围进行SSH连接。您可以使用iptables命令(如`iptables -A INPUT -p tcp --dport 22 -s <允许登录IP地址> -j ACCEPT`)或其他防火墙工具来实现。 请注意,在进行任何更改之前,请确保您具有足够的权限,并备份相关文件以防止意外错误。另外,确保不要将自己锁定在系统外部,以免无法远程登录

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机辅助工程

感谢鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值