与 SSH 相关的“输入身份验证器的 PIN”问题

Sco*_*ieh 14 macos ssh github

简短的

我试图在Macbook Pro上为我的 Github 生成一个 SSH 密钥。然而,当我进行将其添加到 ssh-agent 的步骤时,我遇到了“输入身份验证器的 PIN”问题。奇怪的询问来自以下命令:

$ ssh-add -K ~/.ssh/id_rsa
Enter PIN for authenticator:
Run Code Online (Sandbox Code Playgroud)

我完全不知道我应该输入什么来回答这个问题。然而,当我输入以下命令时,一切都如此页面所示

$ /usr/bin/ssh-add -K ~/.ssh/id_rsa
Identity added: /Users/${user_name}/.ssh/id_rsa (your_email@example.com)
Run Code Online (Sandbox Code Playgroud)

为什么会存在这种差异?您究竟需要输入什么来询问“输入身份验证器的 PIN:”?

一些信息

  1. 版本信息
$ ssh -V
OpenSSH_8.3p1, OpenSSL 1.1.1g  21 Apr 2020

$ sw_vers -productVersion
10.15.6
Run Code Online (Sandbox Code Playgroud)
  1. 我用 ed25519 算法生成了密钥。

Pra*_*mar 28

我在 - 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 (xxxxxxx@xxxx.com)
Run Code Online (Sandbox Code Playgroud)


小智 15

您在 shell 的 $PATH 中有第二个(Brew 安装的?)ssh-add,这与 Apple 版本不同。在 Apple 版本中 -K 将密码存储在您的钥匙串中,因此您不必每次都键入它。在非 Apple 版本中 -K“从 FIDO 身份验证器加载常驻密钥。”

ssh-add 在

/usr/bin/ssh-add
Run Code Online (Sandbox Code Playgroud)

是 Apple 提供的,将与 -K 一起使用。


小智 12

如果你使用这个命令

$ ssh-add -K ~/.ssh/id_rsa 
Run Code Online (Sandbox Code Playgroud)

您将被要求输入 PIN 进行身份验证,而不是使用

$ ssh-add ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)


小智 8

正如 man ssh-add 页面所指定的,-K选项是:

-K 从 FIDO 身份验证器加载常驻密钥。

所以你基本上告诉它使用身份验证器。