无法SSH连接Google Compute Engine实例:验证通过后随即断开求助
问题分析与解决方法
从串口日志来看,SSH验证已通过但随即触发断开(错误码11标注为客户端断开,但实际是登录后shell启动失败导致服务器主动终止连接),以下是排查和解决步骤:
1. 检查用户默认shell有效性
- 远程执行命令查看用户的默认shell配置:
gcloud compute ssh instance-num1 --command "cat /etc/passwd | grep USERNAME" - 如果输出中shell字段是
/bin/false、/sbin/nologin或不存在的路径,执行命令修改为有效shell(比如/bin/bash):gcloud compute ssh instance-num1 --command "sudo usermod -s /bin/bash USERNAME"
2. 排查用户登录脚本异常
- 检查用户家目录下的登录初始化脚本,确认是否有导致退出的命令:
gcloud compute ssh instance-num1 --command "sudo cat /home/USERNAME/.bashrc /home/USERNAME/.profile /home/USERNAME/.bash_profile" - 如果发现
exit、logout或错误的跳转命令,直接注释或删除这些内容。
3. 检查SSH服务配置限制
- 查看sshd配置是否存在强制命令或用户限制:
gcloud compute ssh instance-num1 --command "sudo cat /etc/ssh/sshd_config | grep -E 'ForceCommand|AllowUsers|DenyUsers'" - 如果
ForceCommand设置为退出类命令,注释该行;如果AllowUsers未包含目标用户名,添加后重启sshd服务:gcloud compute ssh instance-num1 --command "sudo systemctl restart sshd"
4. 验证PAM模块配置
- 检查PAM的sshd配置是否存在异常限制:
gcloud compute ssh instance-num1 --command "sudo cat /etc/pam.d/sshd" - 确保session模块没有配置强制退出的规则,比如异常的
pam_exec.so调用。
内容的提问来源于stack exchange,提问作者DPatel
相关产品推荐
相关产品推荐

