小编Chr*_* W.的帖子

为什么我重新附加时必须在 tmux 中重新设置环境变量?

我主要在 mac 上工作,ssh/tmux 连接到 Linux 机器来完成我的工作。我在 Linux 机器上运行了 ssh-agent。我有

set -g update-environment "SSH_AUTH_SOCK SSH_ASKPASS WINDOWID SSH_CONNECTION XAUTHORITY"

在我的.tmux.conf. 但是,每当我重新连接到此会话时,我都必须运行

tmux setenv SSH_AUTH_SOCK $SSH_AUTH_SOCK
Run Code Online (Sandbox Code Playgroud)

为了$SSH_AUTH_SOCK正确设置新的 tmux 窗口。我宁愿不必这样做。有任何想法吗?

更新

我想我没有很好地解释这一点。这是我在远程机器上打开 shell 的 shell 函数:

sshh () {
    tmux -u neww -n ${host} "ssh -Xt ${host} $*"
}
Run Code Online (Sandbox Code Playgroud)

当TMUX运行此ssh命令,$SSH_AUTH_SOCK没有设置,即使在我的本地环境设置。如果我使用setenv上面的命令将其放入 tmux 的环境中,则一切正常。我的问题是,为什么我必须运行 setenv 命令?

更新 2

更多信息:

当我附加到现有会话时,$SSH_AUTH_SOCK未在 tmux 环境(或全局环境)中设置。

% tmux showenv | grep -i auth_sock
-SSH_AUTH_SOCK
Run Code Online (Sandbox Code Playgroud)

如果我手动设置它,事情会起作用:

% …
Run Code Online (Sandbox Code Playgroud)

shell tmux environment-variables

45
推荐指数
2
解决办法
3万
查看次数

如何使 journalctl 消息显示为红色?

中的一些错误消息以journalctl红色和白色显示。如果我正在创作我自己的systemd服务,我该如何格式化我的消息,以便它们以红色或白色显示。这是一种突出错误的好方法。

systemd journalctl

3
推荐指数
1
解决办法
1015
查看次数

标签 统计

environment-variables ×1

journalctl ×1

shell ×1

systemd ×1

tmux ×1