在新的 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 正在执行的所有操作。