每次运行 tmux 时,都会启动新的 ssh-agent 子进程(zshell)

每次运行 tmux 时,都会启动新的 ssh-agent 子进程(zshell)

每次我启动 tmux 或 split tmux 时,都会启动 ssh-agent 的新实例(“Agent pid XXXX”出现在顶部),这很烦人,因为每次我想使用它时都必须输入密钥密码。更不用说最终 ssh 代理的数量了。

我使用 Arch Linux 和 KDE,我的 $SHELL 是 zshell。

ssh-agent在系统启动时自动启动,但我无法弄清楚是谁启动了它 - 它不在 或 中.zshrc.bash_profile我尝试在 中 grep 查找“ssh-agent”,~但什么也没找到。

答案1

默认情况下,tmux为所有新窗口生成一个登录 shell。然后,这将来源您~/.zprofile或您开始的任何地方ssh-agent

如上所述man tmux,您可以通过在您的 中显式设置默认命令来避免这种行为~/.tmux.conf

默认命令shell命令
将用于新窗口的命令(如果在创建窗口时未指定)设置为shell命令,它可以是任何 sh(1) 命令。 默认为空字符串,指示 tmux 使用 default-shell 选项的值创建登录 shell

因此,为了防止每个新窗口都作为登录 shell 生成,请将以下行添加到您的配置文件中:

set -g default-command /bin/zsh

相关内容