<br /> <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path></svg></p>
<p>
#场景描述<br /> #我在Centos7.3安装了源码编译的openssh8.0后,不记得了有没有添加参数–with-pam<br /> #安装编译完成后对sshd_config进行了如下的配置<br /> ##############################################<br /> AllowUsers root<br /> AllowGroups root<br /> MaxAuthTries 4<br /> MACs hmac-sha2-512,hmac-sha2-256<br /> Ciphers aes256-ctr,aes192-ctr,aes128-ctr<br /> HostbasedAuthentication no<br /> ClientAliveCountMax 3<br /> ClientAliveInterval 300<br /> PassordAuthentication yes<br /> UsePAM yes #这个不太记得开没开启了,应该是开启的<br /> X11Forwarding yes是<br /> PermitRootLogin yes<br /> #############################################<br /> #同时我还对用户尝试登陆次数进行了限制,3次失败则锁定200秒<br /> #配置如下<br /> ####################<br /> #/etc/login.defs /etc/pam.d/system-auth, /etc/pam.d/password-auth, /etc/pam.d/sshd, /etc/pam.d/login的配置如下<br /> 在第二行加了<br /> auth required pam_tally2.so deny=5 unlock_time=100 even_deny_root root_unlock_time=200<br /> ###################################################################################################################<br /> #参数说明<br /> even_deny_root 也限制root用户;<br /> deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户<br /> unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒;<br /> root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒;<br /> 此处使用的是 pam_tally2 模块,如果不支持 pam_tally2 可以使用 pam_tally 模块。另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。<br /> ###################################################################################################################<br /> 这个只是限制了用户从tty登录,而没有限制远程登录,如果想限制远程登录,需要改sshd文件<br /> /etc/pam.d/sshd<br /> auth required pam_tally2.so deny=5 unlock_time=100 even_deny_root root_unlock_time=200<br /> ######设置密码尝试次数锁定<br /> 编辑/etc/pam.d/password-auth和/etc/pam.d/system-auth文件,添加以下行:<br /> auth required pam_faillock.so preauth audit silent deny=5 unlock_time=200<br /> auth [success=1 default=bad] pam_unix.so<br /> auth [default=die] pam_faillock.so authfail audit deny=5 unlock_time=200<br /> auth sufficient pam_faillock.so authsucc audit deny=5 unlock_time=200<br /> ######设置密码尝试次数锁定<br /> ###################################################################################################################<br /> 相关命令<br /> pam_tally2 -r -u aihuidi 解锁aihuidi用户<br /> pam_tally2 --user 在进行查看用户登录失败次数<br /> ###################################################################################################################<br /> 进行上面的一系列配置后重启系统后ssh再也连接不上去了<br /> 就算密码正确也连接不上<br /> 猜想可能是因为<br /> 密码过期了,但是密码过期会登录成功要求你改密码<br /> 尝试次数过多用户被锁定了,但是密码是复制过去的,出错可能性很小<br /> 这时候我去找到管理虚拟机的人,直接操作虚拟机,<br /> 可怕的事情来了,打开虚拟机本地终端也不能login,完蛋了。咋办呀
</p>
<p>
心里一万个曹尼玛飞过<br /> 难道真的是密码错了?行吧。我重置密码够了吧?<br /> 进入单用户重置密码<br /> ######################################################<br /> 加载内核时按一下e进入<br /> 在内核哪一行末尾加 init=/bin/sh<br /> ctrl + X重启<br /> 进入后mount -o remount,rw /<br /> 修改密码<br /> passwd修改成功之后重启系统<br /> ######################################################<br /> 进行重置密码后密码百分百正确了吧?<br /> 操蛋的玩意,还是不能登录,这啥玩意,咋的了<br /> 行吧,再次进入查看相关配置吧<br /> ######################################################<br /> 加载内核时按一下e进入<br /> 找到ro那个位置,ro的意思是read only,将“ro”替换成 rw init=/sysroot/bin/sh<br /> 执行chroot /sysroot。其中chroot命令用来切换系统,/sysroot/目录就是原始系统<br /> 在这里可以做你想做的事情了<br /> ###############################<br /> 我查看了下ssh的日志发现了一个可疑的东西,只要一ssh登录就会报错<br /> error:could not get shadow information for root #systemctl status sshd -l进行查看<br /> 另外一个信息是没有加载pam
</p>
<p>
我做的是直接把我源码安装的ssh卸载了<br /> 然后在yum安装一个,安装好之后进行最开始的配置<br /> 修改密码root<br /> ssh localhost<br /> 登录成功了<br /> 重启sshd<br /> 重启reboot<br /> ###############################<br /> good连接成功了
</p>
<p>
###############################<br /> 总结原因<br /> 设置密码尝试次数锁定:尝试次数过多锁定,但是后面到时间后自动解锁<br /> 所以前面的某条猜想破灭<br /> 密码过期也不成立,因为修改密码后任然不可登陆<br /> 最后问题是PAM编译时候没有正确安装<br /> 如果想要重来的话正确编译安装好pam就行了<br /> #####################################
</p></p>