.ssh/config:Mac OS Sierra 10.12.6 上的“错误配置选项:UseKeychain”

问题描述 投票:0回答:10

我正在尝试在 Mac (Mac OS Sierra 10.12.6) 上设置 ssh 配置,以便将 ssh 密钥的密码存储在钥匙串中。以前我可以用

做到这一点
ssh-add -K ~/.ssh/id_rsa

但最近这个似乎不再起作用了。在本文之后,Mac OS > 10.12.2 中的 ssh 配置行为似乎发生了变化,解决此问题的建议方法是将

UseKeychain yes
添加到您的 ssh 配置中。这是我的
.ssh/config
部分
Host *
:

Host *
  Port 22
  ServerAliveInterval 60
  ForwardAgent yes
  IdentityFile ~/.ssh/id_rsa
  AddKeysToAgent yes
  UseKeychain yes

当尝试 ssh 到外部主机时,我收到以下错误消息:

$ ssh my-host
/Users/USER/.ssh/config: line 16: Bad configuration option: usekeychain

有什么想法为什么会发生这种情况以及如何解决它吗?谢谢!

macos ssh macos-sierra
10个回答
363
投票

尝试指定另一个选项,即

IgnoreUnknown
,如下所示:

Host *
  IgnoreUnknown UseKeychain
  UseKeychain yes

您可以在此处找到更多相关信息。

如果您已有

IgnoreUnknown
值,请使用逗号分隔值

Host *
  IgnoreUnknown AddKeysToAgent,UseKeychain
  AddKeysToAgent yes
  UseKeychain yes

如果您有多个使用

Host
选项的
UseKeychain
配置,请确保放置

Host *
  IgnoreUnknown UseKeychain

在第一个使用该选项的主机之前,例如把它放在文件的顶部。

如果您不想(或不能)修改 SSH 配置文件,也可以在命令行连接时传递此选项:

ssh -o IgnoreUnknown=UseKeychain my-host

78
投票

接受的答案对我有帮助,但并没有完全解决我的问题,因为我有多种不好的选择。以下是您遇到此问题时可能出现的情况的示例:

Host *
  IgnoreUnknown AddKeysToAgent,UseKeychain
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

1
投票

不要使用 ssh-add 类型,而是输入“open .ssh/id_rsa”并将其添加到钥匙串中

UseKeychain 选项在我的配置中从未出现过那么糟糕,但我一开始就在任何其他主机之前使用了以下内容

Host *
UseKeychain yes 

Host (...)

1
投票

只是相关说明,如果您的配置有多个

Host
条目,您应该在文件顶部设置
IgnoreUnknown
仅一次 - 否则您会再次收到错误
Bad configuration option: usekeychain
。例如:

Host *
  IgnoreUnknown UseKeychain

0
投票

我有一个类似的问题,通过删除配置前面的前导空格来解决,例如:

Host *
UseKeychain yes

Host *
  UseKeychain yes

0
投票

接受的答案对我不起作用,我还必须更改主机模式。我遵循 GitHub 的文档并使用:

Host *.github.com
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

建议的修复:

Host *.github.com
  IgnoreUnknown AddKeysToAgent,UseKeychain
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

没用。去掉

.github.com
部分后才起作用:

Host *
  IgnoreUnknown AddKeysToAgent,UseKeychain
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

不知道为什么。


0
投票

这可能是因为你使用的是用brew安装的东西。检查使用

which ssh
并确保您使用的是 Apple 版本:
/usr/bin/ssh

/usr/bin/ssh -T [email protected]


-1
投票

我刚刚注释掉了该行,scp/ssh 又开始为我工作了。


-1
投票

我遇到了同样的问题,我意识到当开始按照说明生成密钥时。第一步是这样的。

ssh-keygen -t rsa -b 4096 -C "[email protected]"

我没有更改电子邮件地址,但我当然忘记了这样做:D。所以一定不要忘记这一步,一切都会好起来的。


-2
投票

是大写-K 尝试小写-k!!

ssh-add -k ~/.ssh/id_rsa

Enter passphrase for /Users/tom/.ssh/id_rsa:
Identity added: /Users/tom/.ssh/id_rsa (/Users/tom/.ssh/id_rsa)
© www.soinside.com 2019 - 2024. All rights reserved.