You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置Ansible专用无密码短语SSH密钥连VM仍提示密码问题

Ansible专属SSH密钥免密登录失败排查修复

你遇到的密钥认证失效、直接回退到密码提示的问题,是跨系统配置SSH免密时的高频问题,按以下优先级逐一排查即可解决:

  • 目标Ubuntu侧文件/目录权限不符合OpenSSH安全校验规则(占同类问题90%以上)
    OpenSSH对认证相关的目录、文件权限有强制安全要求,权限配置过宽时会直接静默拒绝公钥认证,不抛出显式报错,直接回退到密码输入流程,和你遇到的现象完全一致。登录目标虚拟机执行以下命令修正权限即可:
    # 修正家目录权限,禁止全局可写
    chmod 755 ~
    # 修正.ssh目录权限,仅所有者拥有读写执行权限
    chmod 700 ~/.ssh
    # 修正授权密钥文件权限,仅所有者可读写
    chmod 600 ~/.ssh/authorized_keys
    # 修正.ssh目录及下属文件所有权,归属当前登录用户
    chown -R $USER:$USER ~/.ssh
    
  • 连接命令未指定目标机用户名
    你当前执行的连接命令没有写明Ubuntu侧的登录用户名,Windows自带OpenSSH会默认使用当前Windows系统的登录用户名尝试连接,如果Ubuntu上没有同名用户,会直接触发密码提示。将连接命令改为明确指定用户名的格式即可:
    ssh -i C:\Users\user_name\.ssh\ansible 你的Ubuntu用户名@ip_addr
    
  • 手动复制公钥时出现格式损坏
    手动复制公钥内容时如果带入多余换行、空格,或是把Windows系统的CRLF换行符写入目标机的authorized_keys文件,会导致服务端无法识别公钥。可以在Windows PowerShell中执行以下命令自动推送公钥,避免手动复制出错:
    # 替换命令中的用户名、IP为你虚拟机的实际配置
    type $env:USERPROFILE\.ssh\ansible.pub | ssh 目标用户名@目标IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
    
    注意推送的是后缀为.pub的公钥文件,不要选错私钥文件。
  • 目标机SSH服务配置禁用公钥认证
    以上操作都无效时,登录目标机检查SSH服务配置文件/etc/ssh/sshd_config,确认以下配置项未被注释、参数值正确:
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    
    修改配置后执行sudo systemctl restart sshd重启服务生效。

如果需要定位具体失败原因,可以在连接命令后加-v参数开启调试日志,日志中如果出现bad ownership or modes的相关提示,可直接确认是权限配置问题。


内容的提问来源于stack exchange,提问作者IDK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 15:27:15