SSh无密码登陆不成功的问题,跟Home目录权限相关

在使用Rocks集群时,通过调整.sshauthorizedkey的权限并修改所有者为所需登录账户,最终将Home目录权限设置为700,成功解决了无法登录的问题。

由于采用Rocks集群,所以对于Home目录权限的设置就有一些奇怪

今天按照一些Hadoop教程更改了.ssh authorizedkey的权限,发现还是不行

最后用查看家目录的所有者是root,果断chown命令更改所有者为需要登录的账户,之后更改权限为700,就OK了

转载于:https://www.cnblogs.com/chenatu/archive/2012/12/18/2823129.html

<think>嗯,用户说SSH突然登录上,卡在输入密码后。这个问题可能由多种原因引起,我需要一步步分析。首先,我应该回忆常见的SSH登录问题,然后逐一排查可能的原因。 首先,用户输入密码后卡住,可能意味着连接在验证阶段出了问题。这时候,可能的原因包括网络问题、服务端配置错误、认证方式的问题,或者是防火墙设置阻止了后续的连接。 用户需要结构清晰的帮助,所以我要分步骤来引导他们检查。首先,建议检查网络连接,确保客户端和服务器之间的网络是通的。可能需要用ping或者telnet来测试端口22是否开放。如果网络没问题,那可能是SSH服务本身的问题,比如服务没有运行,或者配置错误,比如MaxStartups限制了并发连接数,导致登录被卡住。 然后,SSH的日志文件是关键。查看/var/log/auth.log或者secure,看看有没有相关的错误信息。比如,认证方式的问题,比如是否启用了键盘交互认证,而客户端支持,或者公钥认证失败转到了密码认证,但服务器配置有问题。 另外,客户端的详细输出也很重要,使用ssh -vvv选项可以显示详细的调试信息,帮助定位问题发生在哪一步骤。比如,可能在认证阶段卡住,或者权限问题,比如home目录或.ssh目录权限正确,导致服务器无法读取密钥文件。 还有可能的是SELinux或AppArmor等安全模块阻止了SSH进程的某些操作,导致认证失败。这时候需要检查这些安全工具的日志,或者暂时禁用它们来测试是否是原因。 防火墙和SELinux的问题能忽视,虽然用户已经排除了网络问题,但有时iptables或firewalld的规则可能丢弃了某些包,或者SELinux的布尔值需要调整,比如允许SSH访问家目录。 此外,服务端的资源问题,比如内存或进程数达到上限,导致SSH无法创建新会话,这时候需要检查系统负载和资源使用情况。 最后,可能是一些常见的配置问题,比如UseDNS设置为yes导致DNS解析超时,或者GSSAPI认证启用导致延迟。这些可以通过修改sshd_config文件来调整,比如禁用UseDNS或GSSAPIAuthentication。 总结下来,需要从网络、服务状态、配置、日志、权限、防火墙和安全模块等多个方面逐步排查,每一步都需要用户执行特定的命令并反馈结果,以缩小问题范围,找到具体的解决方案。</think>当SSH登录卡在密码输入后的阶段时,通常涉及网络、服务配置或认证流程异常。以下是分步骤排查指南: --- ### 一、基础网络检查 1. **确认端口可达性** ```bash telnet 服务器IP 22 # 或使用 nc -zv 服务器IP 22 ``` - 若连接失败:检查服务器防火墙(`iptables`/`firewalld`)、云服务器安全组规则 - 若连接成功但无响应:可能是SSH服务未运行 2. **检查服务状态** 在服务器本地执行: ```bash systemctl status sshd # 确认服务是否运行 journalctl -u sshd -n 50 # 查看最近50条日志 ``` --- ### 二、SSH服务端配置排查 1. **关键配置文件** 检查 `/etc/ssh/sshd_config`: ```bash grep -E "MaxStartups|LoginGraceTime|PasswordAuthentication" /etc/ssh/sshd_config ``` - `MaxStartups 10:30:60`:并发连接数限制(默认10个未完成登录) - `LoginGraceTime 120`:登录超时时间(单位秒) - `PasswordAuthentication yes`:确保密码登录未禁用 2. **强制配置重载** ```bash systemctl reload sshd ``` --- ### 三、客户端调试模式 通过`-vvv`参数获取详细日志: ```bash ssh -vvv user@服务器IP ``` 观察卡在哪个阶段: - 若停在`debug1: Entering interactive session`:服务端未分配伪终端 - 若停在`debug1: Authentication succeeded`后无响应:可能为Shell初始化问题 --- ### 四、服务端日志分析 检查认证日志: ```bash tail -f /var/log/auth.log # Debian/Ubuntu tail -f /var/log/secure # RHEL/CentOS ``` 常见错误线索: - `pam_unix(sshd:auth): authentication failure`:密码错误或PAM模块故障 - `error: Could not load host key`:缺少`/etc/ssh/ssh_host_*`密钥文件 - `Timeout before authentication`:网络延迟或`LoginGraceTime`过短 --- ### 五、高级问题排查 1. **文件系统权限问题** ```bash chmod 700 ~/.ssh # 用户.ssh目录权限 chmod 600 ~/.ssh/authorized_keys # 公钥文件权限 ``` 2. **SELinux/AppArmor干扰** ```bash setenforce 0 # 临时关闭SELinux测试 aa-complain /usr/sbin/sshd # AppArmor投诉模式 ``` 3. **DNS反向解析阻塞** 修改`/etc/ssh/sshd_config`: ``` UseDNS no GSSAPIAuthentication no ``` --- ### 六、替代测试方案 1. **改用密钥登录** 生成密钥对后上传公钥: ```bash ssh-copy-id -i ~/.ssh/id_rsa.pub user@服务器IP ``` 2. **临时切换其他Shell** 在服务器上为用户指定`/bin/sh`测试: ```bash usermod -s /bin/sh 用户名 ``` --- ### 典型解决方案汇总 | 现象 | 解决方案 | |---------------------|----------------------------------| | 密码正确但无响应 | 检查`/etc/ssh/sshd_config`中的`UsePAM yes` | | 连接被立即拒绝 | 重启sshd服务或检查端口占用(`netstat -tulnp`) | | 仅特定用户无法登录 | 检查用户磁盘配额、`/etc/passwd`完整性 | 建议从客户端调试日志和服务端`auth.log`双端交叉分析,多数卡顿问题与网络抖动、PAM模块加载超时或SSH版本兼容有关。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值