我尝试在 Macbook Pro 上为我的 Github 生成 SSH 密钥。然而,当我将其添加到 ssh-agent 的步骤时,我遇到了“输入身份验证器的 PIN”问题。这个奇怪的问题来自以下命令:
$ ssh-add -K ~/.ssh/id_rsa
Enter PIN for authenticator:
我完全不知道我应该输入什么来回答这个问题。然而,当我输入以下命令时,一切都如此页面所示。
$ /usr/bin/ssh-add -K ~/.ssh/id_rsa
Identity added: /Users/${user_name}/.ssh/id_rsa ([email protected])
为什么会存在这种差异?当询问“输入验证器的 PIN 码:”时,您到底需要输入什么?
$ ssh -V
OpenSSH_8.3p1, OpenSSL 1.1.1g 21 Apr 2020
$ sw_vers -productVersion
10.15.6
如果您使用此命令
$ ssh-add -K ~/.ssh/id_rsa
您将被要求输入 PIN 码进行身份验证 所以代替那个使用
$ ssh-add ~/.ssh/id_rsa
您的 shell 的 $PATH 中有第二个(Brew 安装的?)ssh-add,它与 Apple 版本不同。在 Apple 版本中,
-K
将密码存储在您的钥匙串中,因此您不必每次都输入密码。在非 Apple 版本中-K
“从 FIDO 身份验证器加载常驻密钥。”
ssh-add
位于:
/usr/bin/ssh-add
是 Apple 提供的,可与
-K
配合使用。
macOS Monterey (v12) 更新
-K
和 -A
标志已弃用,并分别由 --apple-use-keychain
和 --apple-load-keychain
标志取代。
我在 - https://www.ssh.com/academy/ssh/add 上看到,发现如果我们使用 -'k'(小 k),那么它会询问我在 ssh 密钥生成过程中添加的密码.
例如我创建 ssh 密钥时的密码是 - Pass@123# 之后当我执行命令时 -
$ssh-add -k ~/.ssh/id_rsa
Enter passphrase for ~/.ssh/id_rsa: (typed here - Pass@123# and press enter)
Identity added: ~/.ssh/id_rsa ([email protected])
如 man ssh-add 页面所指定,
-K
选项为:
-K 从 FIDO 身份验证器加载驻留密钥。
所以你基本上告诉它使用身份验证器。
1820是我使用的密码,但未能开通我的代理帐户0743201449