gpt4 book ai didi

tmux - 附加到现有 tmux session 时如何自动更新 SSH 代理环境变量?

转载 作者:行者123 更新时间:2023-12-03 05:28:48 27 4
gpt4 key购买 nike

当我重新连接断开的 tmux session 时,我正在尝试找到一种恢复 SSH 代理的好方法。

原因似乎是 SSH 代理 session 发生更改,但 tmux session 中的环境变量未更新。

在附加 session 本身之前,如何自动执行此操作?因为我附加的 session 并不总是有 bash 提示符,所以我无法在其中输入内容。它必须是在创建或附加 tmux session 之前运行的东西。

我正在运行的代码示例位于 https://gist.github.com/ssbarnea/8646491 -- 一个小型 ssh 包装器,使用 tmux 创建持久 ssh 连接。这工作得很好,但有时 ssh 代理会停止工作,因此我无法再使用它连接到其他主机。

最佳答案

有一个很棒的 gist作者 Martijn Vermaat,它深入解决了您的问题,尽管它是针对屏幕用户的,所以我在这里针对 tmux 进行调整。

总结一下:

  1. 如果~/.ssh/rc尚不存在,则创建它,并添加以下内容:

    #!/bin/bash

    # Fix SSH auth socket location so agent forwarding works with tmux.
    if test "$SSH_AUTH_SOCK" ; then
    ln -sf $SSH_AUTH_SOCK ~/.ssh/ssh_auth_sock
    fi
  2. 使其在 tmux 中工作,将其添加到您的 ~/.tmux.conf 中:

    # fix ssh agent when tmux is detached
    setenv -g SSH_AUTH_SOCK $HOME/.ssh/ssh_auth_sock

如果您想要启用 X11 转发,则需要额外的工作,请参阅gist .

关于tmux - 附加到现有 tmux session 时如何自动更新 SSH 代理环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21378569/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com