有没有办法在不同的屏幕上保持 ssh-agent 连接?

vfc*_*sts 4 login ssh gnu-screen ssh-agent

每当我使用 ssh-agent 进行无密码登录时,它就无法跨不同的登录和屏幕会话工作,即使它们是并发的。

我怀疑它使用了一些无法跨不同会话工作的 shell 变量。有什么方法可以配置它或让它使用可以出现在所有会话中的某种变量吗?

小智 6

我用来keychain管理我的ssh-agent环境变量,它负责确保一次只有一个代理运行。从我.bashrc在适当的机器上:

# is this an interactive shell?
if [[ $- == *i* ]]; then
    # set up ssh key server
    if [[ -x /usr/bin/keychain ]]; then
        eval $(keychain --eval --ignore-missing the <keys I want>)
    fi
fi
Run Code Online (Sandbox Code Playgroud)

它将环境变量存储在 中~/.keychain,如果未找到则运行代理,并将新的或现有的变量返回到 中eval。我几年前就设置了它,但没有碰过它。如果您已ssh-askpass安装,即使运行钥匙串的 shell 不可见(例如 X11 初始化脚本),它也能够在 X11 环境中提示输入密码。

还有其他方法可以使用它,但这对我来说适用于多个 Linux 工作站,包括当我没有登录 X11 时从远程登录工作站。