记录一次openssh无法登陆的问题

#场景描述
#我在Centos7.3安装了源码编译的openssh8.0后,不记得了有没有添加参数–with-pam
#安装编译完成后对sshd_config进行了如下的配置
##############################################
AllowUsers root
AllowGroups root
MaxAuthTries 4
MACs hmac-sha2-512,hmac-sha2-256
Ciphers aes256-ctr,aes192-ctr,aes128-ctr
HostbasedAuthentication no
ClientAliveCountMax 3
ClientAliveInterval 300
PassordAuthentication yes
UsePAM yes #这个不太记得开没开启了,应该是开启的
X11Forwarding yes是
PermitRootLogin yes
#############################################
#同时我还对用户尝试登陆次数进行了限制,3次失败则锁定200秒
#配置如下
####################
#/etc/login.defs /etc/pam.d/system-auth, /etc/pam.d/password-auth, /etc/pam.d/sshd, /etc/pam.d/login的配置如下
在第二行加了
auth required pam_tally2.so deny=5 unlock_time=100 even_deny_root root_unlock_time=200
###################################################################################################################
#参数说明
even_deny_root 也限制root用户;
deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户
unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒;
此处使用的是 pam_tally2 模块,如果不支持 pam_tally2 可以使用 pam_tally 模块。另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。
###################################################################################################################
这个只是限制了用户从tty登录,而没有限制远程登录,如果想限制远程登录,需要改sshd文件
/etc/pam.d/sshd
auth required pam_tally2.so deny=5 unlock_time=100 even_deny_root root_unlock_time=200
######设置密码尝试次数锁定
编辑/etc/pam.d/password-auth和/etc/pam.d/system-auth文件,添加以下行:
auth required pam_faillock.so preauth audit silent deny=5 unlock_time=200
auth [success=1 default=bad] pam_unix.so
auth [default=die] pam_faillock.so authfail audit deny=5 unlock_time=200
auth sufficient pam_faillock.so authsucc audit deny=5 unlock_time=200
######设置密码尝试次数锁定
###################################################################################################################
相关命令
pam_tally2 -r -u aihuidi 解锁aihuidi用户
pam_tally2 --user 在进行查看用户登录失败次数
###################################################################################################################
进行上面的一系列配置后重启系统后ssh再也连接不上去了
就算密码正确也连接不上
猜想可能是因为
密码过期了,但是密码过期会登录成功要求你改密码
尝试次数过多用户被锁定了,但是密码是复制过去的,出错可能性很小
这时候我去找到管理虚拟机的人,直接操作虚拟机,
可怕的事情来了,打开虚拟机本地终端也不能login,完蛋了。咋办呀

心里一万个曹尼玛飞过
难道真的是密码错了?行吧。我重置密码够了吧?
进入单用户重置密码
######################################################
加载内核时按一下e进入
在内核哪一行末尾加 init=/bin/sh
ctrl + X重启
进入后mount -o remount,rw /
修改密码
passwd修改成功之后重启系统
######################################################
进行重置密码后密码百分百正确了吧?
操蛋的玩意,还是不能登录,这啥玩意,咋的了
行吧,再次进入查看相关配置吧
######################################################
加载内核时按一下e进入
找到ro那个位置,ro的意思是read only,将“ro”替换成 rw init=/sysroot/bin/sh
执行chroot /sysroot。其中chroot命令用来切换系统,/sysroot/目录就是原始系统
在这里可以做你想做的事情了
###############################
我查看了下ssh的日志发现了一个可疑的东西,只要一ssh登录就会报错
error:could not get shadow information for root #systemctl status sshd -l进行查看
另外一个信息是没有加载pam

我做的是直接把我源码安装的ssh卸载了
然后在yum安装一个,安装好之后进行最开始的配置
修改密码root
ssh localhost
登录成功了
重启sshd
重启reboot
###############################
good连接成功了

###############################
总结原因
设置密码尝试次数锁定:尝试次数过多锁定,但是后面到时间后自动解锁
所以前面的某条猜想破灭
密码过期也不成立,因为修改密码后任然不可登陆
最后问题是PAM编译时候没有正确安装
如果想要重来的话正确编译安装好pam就行了
#####################################

你可能感兴趣的:(Openssh)