SSH无法登录
ssh: handshake failed: EOF
ssh -i /root/key apprun@192.168.1.1 时报错ssh: handshake failed: EOF
#日志 原因是密码过期、用户被锁定
sshd[25523]: fatal: Access denied for user apprun by PAM account configuration [preauth]
#密码状态 - 不可以登陆
passwd -S apprun
apprun LK (Alternate authentication scheme in use)
#尝试更新apprun密码 - 可以登陆
passwd ‐S apprun
apprun PS 2024‐01‐24 ‐1 ‐1 ‐1 ‐1 (Password set, SHA512 crypt.)
#密码过期 - 可以密钥登陆
passwd ‐S apprun
apprun LK 2018‐01‐03 0 99999 7 ‐1 (Password locked.)Permission denied, please try again.
登录被拒绝,一般是密码错误、禁止root登录。
#习惯将PermitRootLogin yes和PasswordAuthentication yes追加到配置文件最后
#然后又在前面配置了 sftp 用户限制,就会导致用户无法登陆
#解决方法,以下配置按照要求放在配置文件最后
Match Group sftp # 以下配置仅适用于属于该组的用户
ChrootDirectory /upload/images # 目录限制
ForceCommand internal-sftp # 强制用户使用内置的SFTP服务器进行会话,而不允许执行其他命令
实际测试是这三行参数影响了root的登录
根据您的描述,似乎这三行参数影响了 root 用户的登录。这是因为在配置文件中,您使用了 `Match Group sftp` 条件来限制以下配置仅适用于属于 `sftp` 组的用户。然而,root 用户通常不属于该组,因此这些配置也会影响 root 用户的登录。
如果您只想限制非 root 用户使用 SFTP 功能,并保持 root 用户的 SSH 登录功能,请按照以下步骤进行修改:
1. 将 `Match Group sftp` 行改为 `Match Group *,!root`,这将确保以下配置仅适用于不属于 root 用户的其他用户。
2. 在 `ChrootDirectory /upload/images`、`ForceCommand internal-sftp` 和其他相关配置之前添加一行 `Match Group *,!root`,以将这些配置限制为仅适用于非 root 用户。
3. 重启 SSH 服务以使更改生效。
通过以上修改,这些配置将只对非 root 用户生效,而 root 用户将保留其默认的 SSH 登录功能。请注意,修改配置文件前最好备份原有的配置文件,以防出现问题可以恢复。pam_systemd(crond:session): Failed to create session: Maximum number of sessions (8192) reached, refusing further sessions.
#ssh无法登录 - 日志
Aug 4 03:30:01 zhouyijun6 crond[766467]: pam_systemd(crond:session): Failed to create session: Maximum number of sessions (8192) reached, refusing further sessions.
Aug 5 10:49:45 zhouyijun6 sshd[978330]: pam_unix(sshd:session): session opened for user root by (uid=0)
Aug 5 10:49:51 zhouyijun6 sshd[978336]: Accepted password for root from 172.21.9.19 port 14356 ssh2
Aug 5 10:49:51 zhouyijun6 sshd[978336]: pam_systemd(sshd:session): Failed to create session: Maximum number of sessions (8192) reached, refusing further sessions.
#排查 - 未关闭的ssh会话太多 超出限制8192 将SessionsMax的值调大些或者清理掉一些会话即可解决
[root@zhouyijun6 ~]# loginctl list-sessions
8192 sessions listed.
[root@zhouyijun6 ~]# ll /run/systemd/sessions/ | wc -l
8192
[root@zhouyijun6 ~]# cat /etc/systemd/logind.conf | grep Sess
#SessionsMax=8192
[root@zhouyijun6 ~]# loginctl show-session
SessionsMax=8192SSH远程一直没反应,机器能ping通,ssh端口畅通
#登录控制台 - 发现内存不足
[19819171.554749] Out of memory: Kill process 1142 (crond) score 0 or sacrifice child
[19819171.558567] Killed process 1142 (crond), UID 0, total-vm:182464kB, anon-rss:932kB, file-rss:0kB, shmem-rss:0kB
#硬重启机器便可以登录
然后配置sysctl,使内存耗尽自动崩溃重启
vm.panic_on_oom = 1 #当系统内存耗尽(OOM,Out of Memory)时是否触发系统崩溃
kernel.panic = 30 #在遇到严重错误时,30秒后自动触发崩溃SSH登陆慢
#ssh登陆慢
#日志auth.log 或 secure
#排查ssh root@192.168.72.242 -vvv(调试模式) 可能会有下面提示
debug1: Unspecified GSS failure. Minor code may provide more information
#方法
GSSAPIAuthentication 改为 no #禁用 GSSAPI 身份验证以解决 Kerberos 相关问题。
UseDNS 改为 no #避免 DNS 解析延迟影响连接速度。
UsePAM 改为 no #避免 PAM 模块造成的延迟。