不禁用 SIP 解决 macOS 无法调用 Bitwarden SSH-Agent

前情提要:解决 macOS 上 Tabby 无法调用 Bitwarden 的 SSH-Agent

之前使用黑果的时候尝试过解决这个问题,但我忽略了一个很重要的事实:黑果默认禁用 SIP,因此上一篇帖子的解决方案仅适用于禁用 SIP 的情况,换了白果之后如果不想禁用 SIP 则需要寻找新的解决方案。

我有两个场景需要使用 SSH-Agent,一个是 Tabby 连接 SSH,一个是 JetBrains Toolbox 远程开发时,分别对应两类解决方案。

Tabby

Tabby 拥有插件系统,可以使用插件 ssh-auth-socket 覆盖自定义 SSH_AUTH_SOCK 环境变量。

JetBrains Toolbox

这种可以设置为开机自启的应用,可以利用“自动操作”应用设置一个“应用程序”,来实现覆盖自定义 SSH_AUTH_SOCK 环境变量。

  1. 打开“自动操作.app”,点击“新建文稿”。
  2. 文稿类型选择“应用程序”,然后找到“运行Shell脚本”,双击添加。

运行的脚本中写下如下内容:

export SSH_AUTH_SOCK=/Users/[user]/Library/Containers/com.bitwarden.desktop/Data/.bitwarden-ssh-agent.sock
open "/Applications/JetBrains Toolbox.app" --args --minimize
```

 其中:
 
 + `SSH_AUTH_SOCK` 的内容参照 [Bitwarden SSH Agent | Configure SSH Agent](https://bitwarden.com/help/ssh-agent/#configure-bitwarden-ssh-agent) 中的内容。
 + `--args --minimize` 表示启动 `JetBrains Toolbox.app` 时添加额外参数,当你启动其他应用时按具体应用按需添加。
  1. 保存到你喜欢的位置。

然后在系统设置中将由 Toolbox 创建的开机自启项禁用,添加刚刚创建的 app 为新的自启项,重启即可。