重新启动后未保存 ssh 密钥 OSX

ssh-keys not being saved after reboot OSX

每次我登录到mi用户和运行 ssh-add -l它returns The agent has no identities.

所以我不得不将这一行添加到 mi fish.config 文件中:

ssh-add ~/.ssh/id_one and ssh-add ~/.ssh/id_two > /dev/null ^ /dev/null

我知道它有效,但我想先评估它们是否已添加到代理中,以防止每次我打开终端选项卡时此行 运行。

PD:如果有不同的方法让它们始终保持在 ssh 代理上,我会很高兴知道,已经尝试使用 -K 选项添加它们并添加

IdentityFile ~/.ssh/id_one
IdentityFile ~/.ssh/id_two

我的 ~/.ssh/config~/.ssh/ssh_config 没有结果。

首先要指出的是你的命令

ssh-add ~/.ssh/id_one and ssh-add ~/.ssh/id_two > /dev/null ^ /dev/null

并不像您认为的那样。 fish and 命令在语法上与 && 不同。这是一个命令。这意味着它必须跟在 semi-colon 之后或者是一行中的第一个单词。所以应该是

ssh-add ~/.ssh/id_one; and ssh-add ~/.ssh/id_two > /dev/null ^ /dev/null

此外,在这种情况下丢弃 stderr 是有风险的。如果您不这样做,您会注意到该命令没有按照您的想法执行。只有当您知道该命令会发出您知道可以安全忽略的错误消息时,您才应该丢弃 stderr。

最简单、便携的方法是简单地测试其中一个 ID 是否已经在 ssh 代理中注册:

if status is-login
    if not ssh-add -l | grep -q $HOME/.ssh/id_one
        ssh-add ~/.ssh/id_one ~/.ssh/id_two
    end
end