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

Vagrant创建的两台虚拟机配置SSH密钥后互连接报publickey拒绝

SSH公钥认证失败原因及解决方法

导致该问题最常见的原因是SSH相关目录、文件的权限不符合sshd服务的安全校验规则,公钥复制格式错误、sshd配置异常也会触发该报错,可按以下步骤逐一排查(双向连接失败需要两台虚拟机都执行检查):

1 权限校验(最高频原因)

sshd服务出于安全设计,会直接拒绝权限过高的公钥认证请求:

  • 设置.ssh目录权限为700:
    chmod 700 ~/.ssh
  • 设置authorized_keys文件权限为600:
    chmod 600 ~/.ssh/authorized_keys
  • 修正.ssh目录及内部文件的所属用户为vagrant:
    chown -R vagrant:vagrant ~/.ssh

2 公钥格式校验

如果复制公钥时多输入了换行、空格或者漏字符,会导致公钥不匹配:

  • 在VM1执行命令输出公钥指纹:
    ssh-keygen -lf ~/.ssh/id_rsa.pub
  • 在VM2执行命令输出已存储的公钥指纹:
    ssh-keygen -lf ~/.ssh/authorized_keys
    对比两个输出的SHA256值,如果不一致需要重新复制VM1的id_rsa.pub完整内容写入VM2的authorized_keys文件。

3 sshd配置校验

检查目标机器的/etc/ssh/sshd_config配置文件,确认以下配置未被注释且取值正确:

PubkeyAuthentication yes

配置修改后需要重启sshd服务生效:
sudo systemctl restart sshd

4 换行格式校验

如果公钥内容是从Windows系统复制粘贴而来,可能会携带Windows格式换行符导致公钥识别失败,执行以下命令转换格式即可:
dos2unix ~/.ssh/authorized_keys

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:45:08