Ubuntu 18.04 如何为具有多个选项卡的 1 个终端应用程序创建 ssh 代理,而不是整个系统

Ubuntu 18.04 如何为具有多个选项卡的 1 个终端应用程序创建 ssh 代理,而不是整个系统

我希望能够创建 ssh 代理

  1. 单个终端窗口,以便加载到该代理中的密钥仅在该窗口中可用
  2. 运行多个选项卡的终端应用程序,但不是整个系统。

我不希望整个系统能够使用加载到单个代理中的密钥。我该怎么做?理想情况下,我希望能够同时拥有这两个选项。但如果我能拥有其中一个,我就会非常高兴。

我的问题是我想限制可以访问我的密钥的东西的数量。下面这个例子让我感到很不舒服 已加载密钥的 ssh 代理在多个终端窗口间共享

答案1

SSH 代理的工作原理是启动一个程序,该程序将自身绑定到 /tmp/ 中的某个 Unix 套接字,并将该套接字的路径保存为环境变量SSH_AUTH_SOCK。只有您的用户可以读取和写入它。

最终,以您的用户身份运行的所有内容都有权访问此套接字。即使您SSH_AUTH_SOCK在特定终端中取消设置变量,找到套接字也很容易。如果您不信任某个程序有权访问此套接字,您可以使用 sudo 以其他用户身份运行它,例如sudo -u otheruser node server.js

ssh-add -x您还可以分别使用和锁定和解锁代理ssh-add -X

相关内容