OSX Big Sur SSH 公钥位置

OSX Big Sur SSH 公钥位置

在新的 Mac-mini OSX Big Sur 11.0.1 上,我找不到我的公共 SSH 密钥。

它不在 ~/.ssh 中,因为那里只有 known_hosts

运行命令

   find / -name "*.pub" -print

未找到任何匹配项。

我已经多次从这台机器 ssh 进入我的服务器,它要求输入密码,然后我就可以进入。我假设在这样做时 OSX 已经在某处创建并使用了密钥对。因为这应该存在,所以我不想生成新密钥。

我想将我的 Mac-mini 添加到服务器上的 authorized_keys 中,这样我就不必每次连接都输入密码了。我用我的旧 iMac 这样做了,没有任何问题(.pub 在 .ssh 中,正如那台机器上预期的那样)。

答案1

ssh 将生成并使用密钥对的假设是错误的。

一旦找不到密钥,ssh 将返回“键盘交互式”身份验证方法,因此即使没有公钥,连接也会成功。

答案2

您的计算机可能正在使用已添加到ssh 代理

您可以通过运行列出存储在代理中的密钥及其在文件系统中的位置ssh-add -l。您还可以使用查看公钥本身的内容ssh-add -L

编辑:很遗憾听到这不是来自经纪人的消息。

你的系统可以从几个地方获取密钥。根据ssh_config 手册页,这些地方是。

  • SSH 代理
  • 默认位置(在您的 ~/.ssh 目录中)
  • SSH 客户端配置中指定的文件(/etc/ssh/config 和 ~/.ssh/config)
  • 命令行中指定的文件

如果这些都不能提供任何线索,请尝试使用 运行 ssh -vvvv,因为它将向您显示 ssh 正在执行的所有操作。

相关内容