我在工作站上使用长时间运行的 tmux 会话。有时我必须从笔记本电脑通过 ssh 连接到此工作站。我随身携带存储在 YubiKey 上的 ssh 私钥. 表示 Yubikey 已连接到工作站或者到笔记本电脑。要在 tmux 中使用 ssh,我必须管理 SSH_AUTH_SOCK 环境变量以连接到正确的 ssh 代理。
为了新窗口我已经实施了我找到的“更新环境”解决方案这里:
set -ga update-environment "SSH_AUTH_SOCK"
到更新环境的正在运行的会话我正在寻找任何类型的快捷方式、别名或脚本。
我如何识别当前连接到 tmux 的父会话的 pid 或 tty选择正确的 ssh-agent socked?或者是否有 tmux 命令可以手动更新“SSH_AUTH_SOCK”变量?
答案1
使用更新环境中的 SSH_AUTH_SOCK 时,当您连接时它将在会话环境中发生变化,因此您可以使用“tmux showenv SSH_AUTH_SOCK”查看它(注意没有 -g,因为它是会话环境而不是被更新环境更改的全局环境)。
因此,您可以查看它并使用它来手动更改任何现有窗格中的环境。如果您使用的是 Bourne 风格的 shell,它应该像“eval `tmux showenv -s SSH_AUTH_SOCK`”一样简单。
还要注意,SSH_AUTH_SOCK 自 2009 年以来一直处于默认更新环境中,因此除非您使用的是非常旧的 tmux 版本,否则您不需要更改它。