先介绍一下背景:我有一个用于访问服务器的系统集合,这些系统通过 ssh 使用指纹密钥进行身份验证。在我的其他系统(android、windows 10、centos 7)上,当需要密钥时,我可以使用脚本将密钥添加到 ssh 钥匙串中,没有任何问题。
但是,在一个 Windows 10 实例上,密钥要求输入 PEM 密码,但<private key location> is not a key file.
在提示输入密码之前失败。以下是两个提示,用于说明我在说什么:
Enter PEM pass phrase:
Enter passphrase for <private key location>:
现在,密钥是相同的,并且一旦第一个密钥输入失败而第二个密钥输入成功,它就会按预期工作,但是为什么当我的其他系统不打扰时它甚至会提示输入 PEM 密码? 我该如何摆脱这个提示?
其他可能相关的详细信息:
- 使用 Windows 版 git bash(安装于 WSL 之前)时出现错误,但在另一台机器的实现上可以运行(安装了相同的 git 版本)。
- windows 版本在各个实现中是相同的
答案1
因此,经过多次挫折之后,我发现密钥文件、脚本或实用程序实际上没有任何问题。
问题在于缺少 ssh-keygen 实用程序显然需要的公钥文件。导致问题的具体代码段是ssh-keygen -lf /path/to/key/file
。
替换丢失的公钥后,它不再要求输入 PEM 密码,而是仅按预期提示输入密钥的密码。