我需要能够让 ssh-agent 每次登录时都对其套接字使用相同的文件。当前,它使用临时文件夹中的随机文件,这会给 vagrant 中的 systemd 服务带来问题。
我们运行一个命令来创建一个 env 文件,该文件定义了 systemd 使用的套接字文件位置,但它在每次登录时都会不断改变位置,因此在 vagrant provision 之后,写入 env 文件的位置已经更改,并且不再有效。
有什么方法可以强制它始终保持这种/etc/ssh/ssh_auth_socket
状态吗?
答案1
不可以。默认情况下这是不可能的ssh-agent
。它还会创建文件,$TMPDIR/ssh-XXXXXXXXXX/agent.<ppid>
如手册页中所述。这是为了确保套接字安全(只有您的用户才能访问)。
但是您可以使用gnome-keyring
。它们在中创建套接字/run/user/1000/keyring/ssh
,因此它处于安全的地方并使用相同的协议(在 Gnome 桌面中很常见)。
你需要它做什么?如果你有变量中的路径,你可以简单地创建.bashrc
从“已知”位置到真实位置的符号链接。