如何从 tmux 内部识别已连接的客户端 pid/tty

如何从 tmux 内部识别已连接的客户端 pid/tty

我在工作站上使用长时间运行的 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 版本,否则您不需要更改它。

相关内容