ssh无密码登录认证失败 权限问题

本文记录了一次SSH无密码登录认证失败的问题排查过程。主要问题是由于/home/wangshumin目录权限设置不当导致认证被拒绝。通过对日志的分析及权限调整最终解决了问题。
部署运行你感兴趣的模型镜像

ssh无密码登录认证失败

serverA机器已经生产rsa密钥

且已经将public key添加到serverB机器/root/.ssh/authorized_keys

但是ssh root@135.251.208.141机器时仍然需要输入密码,即无密码认证失败

分析与处理:

用ssh -v debug访问,日志如下,但是从日志看不到失败原因,只知道在用publickey认证时,对端没有reply;

此时百度时,有文章提到可以查看/var/log/secure日志

通过查看serverB机器/var/log/secure,发现报错如下

Jan  8 13:31:34 wng-141 sshd[32366]: Authentication refused: bad ownership or modes for directory /root
Jan  8 13:31:34 wng-141 sshd[32367]: Connection closed by 135.251.218.231

​由此日志,可以是/root目录的权限不对,再百度搜索"Authentication refused: bad ownership or modes for directory /root"

发现所有用户的HOME目录应该是700权限,否则会引起很多问题,这个问题同样是由于这个原因

(3)修改权限(需要修改~/.ssh文件夹和authorized_keys文件的,不然会报不允许的错误或者无法出现know_hosts文件)

chmod 700 ~/.ssh
chmod 700 ~/.ssh/authorized_keys

chmod 700 ~/.ssh

chmod 700 ~/.ssh/authorized_keys

最终,执行chmod 700 root后解决


Feb  9 11:02:52 centoshostnameKL1 su: pam_unix(su:session): session opened for user root by wangshumin(uid=500)
Feb 10 17:40:16 centoshostnameKL1 su: pam_unix(su:session): session closed for user root
Feb 10 17:40:16 centoshostnameKL1 su: pam_unix(su:session): session closed for user root
Feb 10 17:40:16 centoshostnameKL1 su: pam_unix(su:session): session closed for user root
Feb 10 17:50:06 centoshostnameKL1 sudo: wangshumin : TTY=pts/2 ; PWD=/home/wangshumin/zookeeper/zookeeper-3.4.5/bin ; USER=root ; COMMAND=/usr/bin/vim /etc/profile
Feb 10 19:29:01 centoshostnameKL1 sshd[30650]: Authentication refused: bad ownership or modes for directory /home/wangshumin
Feb 10 19:35:16 centoshostnameKL1 sshd[31014]: Authentication refused: bad ownership or modes for directory /home/wangshumin
Feb 10 19:35:26 centoshostnameKL1 sshd[31014]: Failed password for wangshumin from 192.168.72.101 port 46370 ssh2
Feb 10 19:35:26 centoshostnameKL1 sshd[31014]: Failed password for wangshumin from 192.168.72.101 port 46370 ssh2
Feb 10 19:35:26 centoshostnameKL1 sshd[31015]: Connection closed by 192.168.72.101
Feb 10 19:42:24 centoshostnameKL1 sshd[31223]: Authentication refused: bad ownership or modes for directory /home/wangshumin
Feb 10 19:42:38 centoshostnameKL1 sshd[31223]: Failed password for wangshumin from 192.168.72.101 port 46399 ssh2
Feb 10 19:42:38 centoshostnameKL1 sshd[31223]: Failed password for wangshumin from 192.168.72.101 port 46399 ssh2
Feb 10 19:42:38 centoshostnameKL1 sshd[31224]: Connection closed by 192.168.72.101
Feb 10 19:43:54 centoshostnameKL1 sshd[31260]: Authentication refused: bad ownership or modes for directory /home/wangshumin
Feb 10 19:43:58 centoshostnameKL1 sshd[31260]: Accepted password for wangshumin from 192.168.72.101 port 46406 ssh2
Feb 10 19:43:58 centoshostnameKL1 sshd[31260]: pam_unix(sshd:session): session opened for user wangshumin by (uid=0)
Feb 10 19:43:58 centoshostnameKL1 sshd[31265]: Received disconnect from 192.168.72.101: 11: disconnected by user
Feb 10 19:43:58 centoshostnameKL1 sshd[31260]: pam_unix(sshd:session): session closed for user wangshumin
Feb 10 19:45:00 centoshostnameKL1 sshd[31439]: Authentication refused: bad ownership or modes for directory /home/wangshumin
Feb 10 19:45:06 centoshostnameKL1 sshd[31439]: Failed password for wangshumin from 192.168.72.101 port 46414 ssh2
Feb 10 19:45:06 centoshostnameKL1 sshd[31439]: Failed password for wangshumin from 192.168.72.101 port 46414 ssh2
Feb 10 19:45:06 centoshostnameKL1 sshd[31440]: Connection closed by 192.168.72.101
Feb 10 19:48:38 centoshostnameKL1 sshd[31967]: Authentication refused: bad ownership or modes for directory /home/wangshumin
Feb 10 19:50:05 centoshostnameKL1 sshd[31967]: Failed password for wangshumin from 192.168.72.101 port 46429 ssh2
Feb 10 19:50:05 centoshostnameKL1 sshd[31967]: Failed password for wangshumin from 192.168.72.101 port 46429 ssh2


您可能感兴趣的与本文相关的镜像

Wan2.2-T2V-A5B

Wan2.2-T2V-A5B

文生视频
Wan2.2

Wan2.2是由通义万相开源高效文本到视频生成模型,是有​50亿参数的轻量级视频生成模型,专为快速内容创作优化。支持480P视频生成,具备优秀的时序连贯性和运动推理能力

<think>嗯,用户想了解SSH无密码登录,我需要先理清楚基本概念和步骤。首先,SSH无密码登录通常是通过公钥认证实现的,用户生成一对密钥,然后把公钥放到服务器上,这样登录时就不用输入密码了。 接下来,我得考虑用户可能的背景。可能是刚接触服务器管理的新手,或者有基础的开发者想简化登录流程。需要分步骤解释,避免使用太专业的术语,同时确保步骤准确。 第一步,生成密钥对。这里要说明用ssh-keygen命令,默认是RSA,现在可能推荐ed25519更安全。要提醒用户设置空密码或者根据安全需求决定,但建议使用密码短语增加安全性。 第二步,复制公钥到服务器。这里有两种方法,ssh-copy-id命令比较方便,手动操作的话需要把公钥内容追加到~/.ssh/authorized_keys文件中。要注意文件权限,否则可能失败,比如.ssh目录权限应该是700,authorized_keys是600。 第三步,测试登录。成功的话就直接进入,否则可能需要检查权限或者路径是否正确。可能遇到的常见问题包括权限设置错误、公钥未正确安装、服务器SSH配置是否允许公钥认证等。 安全性方面,需要强调私钥的保护,不能泄露,建议加密存储。可能用户会担心无密码登录的安全性,可以解释公钥认证的原理,说明比密码更安全,尤其是使用强加密算法的情况下。 扩展应用部分,可以提到自动化脚本、Git仓库的SSH访问,或者配置多台服务器的情况,方便用户管理多个服务器。 另外,常见问题处理,比如如果还是需要密码,可能检查服务器sshd配置中的PubkeyAuthentication是否为yes,AuthorizedKeysFile路径是否正确。还有可能用户生成密钥时用了非默认名称,需要指定-i参数。 最后,确保整个流程用中文清晰表达,结构分明,步骤详细,同时注意LaTeX格式的正确使用,但这里可能涉及的命令行代码不需要数学公式,所以主要用代码块的形式展示,不过根据用户要求,可能行内变量需要用$...$,但实际命令中的参数一般不用数学符号,所以可能不需要太多LaTeX,但需要确认系统级指令是否影响代码块的展示。用户提到的行内数学表达式需要$...$,但命令行代码可能属于代码块,不需要转换。所以可能主要是在正常文本中提到的变量或技术术语需要用LaTeX吗?比如密钥类型RSA、ed25519可能需要用$RSA$?不过可能不需要,这里可能需要进一步确认,但根据例子,用户给的例子是数学表达式,而技术术语如RSA可能不需要。所以可能这部分不需要使用LaTeX,保持正常文本即可。 总之,整理步骤,分点说明,确保用户能一步步操作,同时涵盖可能的问题和注意事项,帮助用户顺利实现SSH无密码登录。</think>SSH 无密码登录是一种通过**公钥认证**实现的安全登录方式,无需每次手动输入密码。以下是实现原理与步骤详解: --- ### 一、核心原理 1. **密钥对生成** 用户本地生成一对密钥: - **私钥** (`id_rsa`):存储在本地,需严格保密 - **公钥** (`id_rsa.pub`):上传到服务器,用于验证身份 2. **认证流程** 当用户通过 SSH 连接服务器时: - 服务器用公钥加密随机数据,发送给客户端 - 客户端用私钥解密并返回结果,验证成功后允许登录 --- ### 二、配置步骤 #### 1. 生成密钥对(本地操作) ```bash # 使用 RSA 算法(推荐 ed25519,更安全) ssh-keygen -t ed25519 -C "your_email@example.com" # 按提示选择保存路径(默认 ~/.ssh/id_ed25519) # 设置密钥密码(可选,建议设置以增强安全性) ``` #### 2. 上传公钥到服务器 **方法一:自动上传** ```bash ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip ``` **方法二:手动操作** 1. 复制公钥内容: ```bash cat ~/.ssh/id_ed25519.pub ``` 2. 登录服务器,将公钥追加到 `~/.ssh/authorized_keys`: ```bash mkdir -p ~/.ssh chmod 700 ~/.ssh echo "粘贴公钥内容" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys ``` #### 3. 测试登录 ```bash ssh user@server_ip # 若配置成功,无需输入密码即可登录 ``` --- ### 三、关键注意事项 1. **文件权限** - `.ssh` 目录权限必须为 `700` - `authorized_keys` 文件权限必须为 `600` 2. **服务器配置检查** 确保服务器 `/etc/ssh/sshd_config` 包含: ```bash PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys ``` 修改后重启服务: ```bash sudo systemctl restart sshd ``` 3. **安全性建议** - 私钥必须加密存储(如使用 `ssh-agent` 管理) - 禁用密码登录(在服务器配置中设置 `PasswordAuthentication no`) --- ### 四、扩展应用 - **多服务器管理**:将同一公钥上传到多个服务器 - **自动化脚本**:在脚本中直接使用 `ssh` 无需交互输入 - **Git 仓库访问**:通过 SSH 协议免密拉取/推送代码 --- ### 五、常见问题排查 1. **仍提示输入密码** - 检查公钥内容是否正确 - 确认服务器 `.ssh/authorized_keys` 文件权限 2. **密钥路径不匹配** 若使用非默认密钥名称,需显式指定: ```bash ssh -i ~/.ssh/custom_key user@server_ip ``` 通过以上步骤,您可实现高效且安全的 SSH 无密码登录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值