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

Mic*_*ihs 51 macos ssh macos-sierra

我试图在Mac上设置我的ssh配置(Mac OS Sierra 10.12.6),以便在密钥链中存储我的ssh密钥的密码.以前我可以这样做

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

但最近这似乎不再起作用了.在本文之后,似乎在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
Run Code Online (Sandbox Code Playgroud)

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

$ ssh my-host
/Users/USER/.ssh/config: line 16: Bad configuration option: usekeychain
Run Code Online (Sandbox Code Playgroud)

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

mic*_*ael 98

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

IgnoreUnknown UseKeychain
UseKeychain yes
Run Code Online (Sandbox Code Playgroud)

你可以在这里找到更多相关信息.

  • 与其写“您可以在此处找到有关此内容的更多信息。”,不如*具体*说明该选项的*功能*以及*为什么*它会很有用:“如果您与系统共享您的 ssh 配置运行不理解 UseKeychain 选项的旧版 OpenSSH,您可以指定 IgnoreUnknown 选项以使您的配置与新旧版本兼容” - https://developer.apple.com/library/archive/technotes/tn2449 /_index.html (8认同)
  • Apple 文档称 UseKeychain 选项是在 macOS Sierra 10.12 中引入的。那么*为什么*(或在什么条件下)这个错误会在 macOS Big Sur 11.4 中发生? (4认同)
  • 暂时通过`ssh -F /dev/null ...`绕过配置文件,它对我有用。 (2认同)
  • 添加 ```IgnoreUnknown UseKeychain``` 仍然对我不起作用,所以我完全删除了 ```UseKeychain yes``` 并且它有效。不确定这是最好的方法。 (2认同)
  • 这个解决方案对我有用,但我不明白为什么会突然改变?我只登录我的 DigitalOcean 帐户。 (2认同)
  • Nix 包管理器的用户可能会在运行时看到“错误的配置选项:usekeychain”错误。这是在 nixpkgs 上提交的票证:https://github.com/NixOS/nixpkgs/issues/15686 ...“Apple 在其系统上发布了 ssh 的修补版本,以添加 UseKeychain 配置指令”...“它会如果 Nix 在为 Darwin 编译时可以使用这个修补版本,那就太好了”。 (2认同)

Dal*_*ley 35

接受的答案对我有帮助,但并没有完全解决我的问题,因为我有多个选项,这些选项很糟糕.以下是您遇到此问题时的示例:

Host *
  IgnoreUnknown AddKeysToAgent,UseKeychain
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

  • 为什么这有效?我遇到了同样的问题,这个答案解决了它,但我仍然不知道为什么这有效,也不知道为什么我首先遇到这个问题.. (2认同)