【问题标题】:Unable to connect via ssh with public key authentication method无法使用公钥认证方法通过 ssh 连接
【发布时间】:2016-02-26 15:45:42
【问题描述】:

在我的 Windows 10 上,我遇到了无法通过 ssh 用户使用 git bash 中的公钥身份验证方法连接到 m Vagrant 虚拟机的问题,使用诸如

之类的命令
$ ssh -v lauser@127.0.0.1 -p 2222 -i ~/.ssh/id_rsa

系统会提示我输入密码,就好像我在 vm 内的 ~/.ssh/Authorized_keys 文件中复制到的公钥没有看到一样。同时,密码验证方法有效,“vagrant ssh”也有效。 我已经确定了

  1. 在本地创建密钥对,在远程创建一个.ssh目录,并将pub密钥字符串添加到远程的.ssh /authorized_keys文件中; .ssh 和 .ssh /authorized_keys 文件都归用户(lauser)所有,设置为 700 和 644

  2. 编辑 vm 上的 /etc/ssh/sshd_config 文件以使用 RSA认证是 公钥认证是 并重新启动 sshd 服务器(使用“sudo service ssh restart”)。

  3. 验证防火墙已被暂时禁用以消除任何并发症。

  4. 验证只有一个虚拟机在运行,所有其他虚拟机都处于“暂停”或“暂停”模式。

  5. 通过'file ~/.ssh/authorized_keys'确认文件类型,并得到确认'~/.ssh/authorized_keys: OpenSSH RSA public key'

  6. 通过比较 vm 中“sudo cat ~/.ssh/authorized_keys”的输出和本地“cat ~/.ssh/id_rsa.pub”的输出来验证密钥是否匹配。

但在尝试通过公钥身份验证进行连接时,我仍然收到 Permission denied (publickey)。

【问题讨论】:

  • ssh 客户端和sshd 服务器都可以告诉您更多信息。以详细模式运行客户端以确保它提供密钥。如果是这样,请检查服务器日志以了解它拒绝您的密钥的原因。
  • 谢谢!除了“ssh -v”,我如何运行“详细模式下的客户端”?

标签: linux ssh vagrant public-key-encryption


【解决方案1】:

听起来您到目前为止所做的一切都是正确的。当我遇到这个问题时,通常是由于目标用户的主目录 (~)、~/.ssh 或 ~/.ssh/authorized_keys 的目录权限。

this answer on SuperUser

【讨论】:

    【解决方案2】:

    当远程的主目录没有正确的权限时,我也面临同样的挑战。将权限从 777 更改为 744 对我有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-29
      • 2021-06-16
      • 2011-05-21
      • 1970-01-01
      • 2023-04-08
      • 2016-04-02
      • 1970-01-01
      • 2020-02-11
      相关资源
      最近更新 更多