当 SSH 登录 IP 地址被冲突的服务器时:
一会可以正常 SSH 登录
一会会出现此服务器 SSH ecdsa 码变更的提示,此时以前做过的密钥登陆和以前的登陆密码都可能会失效
当 SSH 登录 IP 地址被冲突的服务器时:
一会可以正常 SSH 登录
一会会出现此服务器 SSH ecdsa 码变更的提示,此时以前做过的密钥登陆和以前的登陆密码都可能会失效
ECDSA 是 SSH 服务为自己生成的唯一识别,通常一旦生成便不会改变
当 SSH 客户端访问 SSH 服务端时会尝试识别此 SSH 服务端 (以此 SSH 服务端的 IP 地址或者域名为判断依据) 的 SSH ECDSA 码:
如果当 SSH 客户端没有记录过此 SSH 服务端的 SSH ECDSA 码时,SSH 客户端会给出提示并让用户选择是否信任并记录此 SSH ECDSA 码
如果当 SSH 客户端记录过此 SSH 服务端的 SSH ECDSA 码且和过去的记录匹配时,SSH 客户端会直接 SSH 登录此 SSH 服务端
如果当 SSH 客户端记录过此 SSH 服务端的 SSH ECDSA 码且和过去的记录不一致时,SSH 客户端会给出提示此 IP 地址或者域名的 SSH ECDSA 码已发生改变,此时 SSH 客户端无法通过密码 SSH 登录 SSH 客户端,但是可以通过密码登录 SSH 客户端
/etc/ssh/ssh_host_ecdsa_key.pub
/etc/ssh/ssh_host_ecdsa_key
# ssh-keyscan -t ecdsa <SSH Server IP address>
或者:
# ssh-keyscan -t ecdsa <SSH Server IP domain>
# ssh-keygen -R <SSH Server IP address>
或者:
# ssh-keygen -R <SSH Server IP domain>
# vim ~/.ssh/known_hosts
删除对应的记录:
(步骤略)
# ssh-keygen -t ecdsa -f ssh_host_ecdsa_key
# vim /etc/ssh/sshd_config
添加以下内容:
......
AllowUsers *@192.168.0.1/32 *@192.168.1.0/255.255.255.0 zhumingyu mingyuzhu@192.168.1.1 *.eternalcenter.com
AllowGroups zhu
DenyUsers *
DenyGroups *
(
补充:这里以只允许
1) 来自 IP 地址 192.168.0.1 的用户可以 SSH 登录本服务器
2) 来自 IP 网段 192.168.1.0/255.255.255.0 的用户可以 SSH 登录本服务器
3) 用户 zhumingyu 可以 SSH 登录本服务器
4) 来自 192.168.1.1 的用户 mingyuzhu 可以 SSH 登录本服务器
5) 属于组 zhu 的用户可以 SSH 登录本服务器
6) 来自域名 *.eternalcenter.com 除了域名 attacker.eternalcenter.com 的用户可以 SSH 登录本服务器
为例
)
# systemctl restart sshd
# vim /etc/ssh/sshd_config
将部分内容修改如下:
......
UseTCPWrappers yes
......
# vim /etc/hosts.deny
添加以下内容:
......
sshd : ALL : deny
或者:
......
sshd : ALL
# vim /etc/hosts.allow
添加以下内容:
......
sshd : 192.168.0.1/32: allow
sshd : 192.168.1.0/255.255.255.0: allow
sshd : zhumingyu:allow
mingyuzhu@192.168.1.1 : allow
sshd : *.eternalcenter.com EXCEPT attacker.eternalcenter.com
或者:
sshd : 192.168.0.1 : allow
sshd : 192.168.1. : allow
sshd : zhumingyu : allow
mingyuzhu@192.168.1.1 : allow
sshd : .eternalcenter.com EXCEPT attacker.eternalcenter.com
(
补充:这里以允许
1) 来自 IP 地址 192.168.0.1 的用户可以 SSH 登陆本服务器
2) 来自 IP 网段 192.168.1.0/255.255.255.0 的用户可以 SSH 登陆本服务器
3) 用户 zhumingyu 可以 SSH 登陆本服务器
4) 来自 192.168.1.1 的用户 mingyuzhu 可以 SSH 登陆本服务器
5) 来自域名 *.eternalcenter.com 除了域名 attacker.eternalcenter.com 的用户可以 SSH 登陆本服务器
为例
)
# systemctl restart sshd
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/security_guide/sect-security_guide-tcp_wrappers_and_xinetd-tcp_wrappers_configuration_files
作者:朱明宇
名称:批量检查多个远程服务器的多个用户信息
作用:批量检查多个远程服务器的多个用户信息
1. 将此脚本和清单 $serveraccountfile 文件放在同一目录下
2. 清单 $serveraccountfile 里每个服务器名和用户名以空格相隔占用 1 行
3. 给脚本分割线里的变量赋值
4. 给此脚本添加执行权限
5. 执行此脚本
serveraccountfile=serveraccountfile.txt #记录服务器名和用户名的清单,每个服务器名和用户名以空格相隔占用 1 行
command=”chage -l” #检查用户信息的命令
此脚本执行前必须要先保证执行本脚本的用户能无密码 ssh 远程这些远程服务器,并且可以通过 sudo 获得 su 的 root 权限
#!/bin/bash
####################### Separator ########################
serveraccountfile=serveraccountfile.txt
command="chage -l"
####################### Separator ########################
sumline=$(cat $serveraccountfile | wc -l)
for i in $(seq 1 $sumline)
do
servername=$(sed -n $[i]p $serveraccountfile | awk '{print $1}')
accountname=$(sed -n $[i]p $serveraccountfile | awk '{print $2}')
ssh $servername "sudo su - root -c \"$command $accountname\""
done