每次我启动 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