. ssh/config: Mac OS Sierra 10.12.6上的“ Bad configuration option: UseKeychain”

我试图在 Mac (Mac OS Sierra 10.12.6)上设置 ssh 配置,以便将 ssh 密钥的口令存储在 keychain 中。之前我可以用

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

知道为什么会发生这种事,我该怎么补救吗? 谢谢!

124578 次浏览

尝试指定另一个选项,即 IgnoreUnknown,如下所示:

Host *
IgnoreUnknown UseKeychain
UseKeychain yes

你可以找到更多关于这个 给你的信息。

如果已经有 IgnoreUnknown值,则使用逗号分隔的值

Host *
IgnoreUnknown AddKeysToAgent,UseKeychain
AddKeysToAgent yes
UseKeychain yes

如果您有多个使用 UseKeychain选项的 Host配置,请确保将

Host *
IgnoreUnknown UseKeychain

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

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

ssh -o IgnoreUnknown=UseKeychain my-host

接受的答案帮助了我,但并没有完全解决我的问题,因为我有多个糟糕的选择。下面是一个例子,它可能看起来像如果你有这个问题:

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

我只是注释掉了这一行,然后 scp/ssh 又开始为我工作了。

不使用 ssh-add 类型‘ open. ssh/id _ rsa’,而是将其添加到 keychain 中

UseKeychain 选项在我的配置中从来没有出现过这么糟糕的情况,但是在开始的时候,在其他主机之前出现了以下情况

Host *
UseKeychain yes


Host (...)

是大写字母 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)

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

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

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

我也遇到过类似的问题,通过删除配置文件前面的前导空格解决了这个问题,例如:

Host *
UseKeychain yes

Host *
UseKeychain yes