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


91

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

ssh-add -K ~/.ssh/id_rsa

但是最近这似乎不再起作用了。紧随本文之后,Mac OS> 10.12.2中ssh config的行为似乎有所变化,建议的解决此问题的方法是将其添加UseKeychain yes到ssh config中。所以这是我的.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

有什么想法为什么会发生以及如何解决?谢谢!

Answers:


169

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

Host *
  IgnoreUnknown UseKeychain
  UseKeychain yes

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

如果您已经有一个IgnoreUnknown值,请使用逗号分隔的值

Host *
  IgnoreUnknown AddKeysToAgent,UseKeychain
  AddKeysToAgent yes
  UseKeychain yes

2
ssh -F /dev/null ...暂时绕过配置文件,它对我有用。
Itachi

1
添加IgnoreUnknown UseKeychain仍然对我不起作用,因此我将其UseKeychain yes完全删除,并且可以使用。虽然不确定这是最好的方法。
Hank Chan

这个解决方案对我有用,但我不明白为什么突然之间会发生这种变化?我仅登录到我的DigitalOcean帐户。
anjanesh

我删除了所有选项,并离开了Host和IdentityFile。Github说使用这些选项,但是它们对我都不起作用。谢谢。
Natus Drew

51

接受的答案对我有所帮助,但不能完全解决我的问题,因为我有很多不好的选择。这是一个示例,如果您遇到此问题,它可能看起来像什么:

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

只想把它留在这里:我也无法进行远程连接,这就是问题所在。该问题是使用Bitbucket的Sourcetree工具生成的,我已经卸载了该工具,但留下了残余物,无法进行远程连接
Connor,

谢谢!在MacOS mojave 10.14.6上工作
brendan

为什么这样做?我遇到了同样的问题,并且此问题得到了解决,但我仍然不知道为什么这样做或为什么我首先遇到问题..
Nishant Mehta

2

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


1

代替ssh-add输入'open .ssh / id_rsa'并将其添加到钥匙串中

UseKeychain选项从未在我的配置中显示为差,但在开始时,我先于其他主机

Host *
UseKeychain yes 

Host (...)

仅供参考,我认为那是错误的顺序。如果以这种方式编写,则*规则将被忽略。man ssh_config说:“由于使用了每个参数的第一个获得的值,因此应在文件开头附近给出更多特定于主机的声明,并在结尾处给出常规默认值。”
Telemachus,

仅供参考,近十年来,我在数十台服务器上拥有这样的服务器,而且从未出现过问题。我每天要对许多服务器进行SSH。但是,如果有人发现该配置存在实际问题,那么也许就是这样。
里卡多·门德斯

0

是大写字母-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-add-K至少在macOS上确实有选项。man ssh-add-K When adding identities, each passphrase will also be stored in the user's keychain. When removing identities with -d, each passphrase will be removed from it.
uasi

0

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

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

我没有更改电子邮件地址,但是我当然忘了这么做:D。因此,请确保不要忘记这一步,一切都会好起来的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.