我希望能够创建 ssh 代理
- 单个终端窗口,以便加载到该代理中的密钥仅在该窗口中可用
- 运行多个选项卡的终端应用程序,但不是整个系统。
我不希望整个系统能够使用加载到单个代理中的密钥。我该怎么做?理想情况下,我希望能够同时拥有这两个选项。但如果我能拥有其中一个,我就会非常高兴。
我的问题是我想限制可以访问我的密钥的东西的数量。下面这个例子让我感到很不舒服 已加载密钥的 ssh 代理在多个终端窗口间共享
答案1
SSH 代理的工作原理是启动一个程序,该程序将自身绑定到 /tmp/ 中的某个 Unix 套接字,并将该套接字的路径保存为环境变量SSH_AUTH_SOCK
。只有您的用户可以读取和写入它。
最终,以您的用户身份运行的所有内容都有权访问此套接字。即使您SSH_AUTH_SOCK
在特定终端中取消设置变量,找到套接字也很容易。如果您不信任某个程序有权访问此套接字,您可以使用 sudo 以其他用户身份运行它,例如sudo -u otheruser node server.js
ssh-add -x
您还可以分别使用和锁定和解锁代理ssh-add -X
。