【问题标题】:SSH-add is not persistent event though ssh-agent is started尽管 ssh-agent 已启动,但 SSH-add 不是持久事件
【发布时间】:2012-10-02 12:49:25
【问题描述】:

我做了 ssh-add。在会话期间它工作正常,但是当我退出并使用 ssh 重新连接到服务器时,它不再工作 ssh-add -l 说:没有身份。

我确实使用 eval $(ssh-agent) 在我的 .bash_profile 中启动了 ssh-agent。

任何想法我可以做些什么来保持身份?

// 编辑 所以这是我的场景。我正在使用 ssh 连接到我的网络空间。我想使用 git pull 从 github 中提取数据。我添加了到 github 的连接并且 git pull 工作正常。但它要求输入密码。执行 ssh-add 并添加密码可停止此操作,但仅适用于当前会话。

我必须使用 eval $(ssh-agent) 之类的东西来启动 ssh-agent,因为它不会在服务器上自动启动。

我遇到的主要问题是,我需要一个脚本来执行由 github 的请求调用的 git pull,所以我不能给它密码。

【问题讨论】:

    标签: ssh ssh-agent


    【解决方案1】:

    如果您在会话开始时生成代理,那么当您断开连接时它就会死掉。您可以连接到使代理保持活动状态的屏幕或 byobu/tmux 服务器(如果您像 ssh user@hostname -t 'byobu' 那样连接,则可以跳过 bash 实例)。

    否则,请在机器启动时启动代理,这样您的会话来来去去就不会影响它。

    编辑:您还可以从您的本地机器转发您的代理。如果您碰巧在两台机器上都有相同的密钥,这将非常有效。在您的~/.ssh/config 中尝试这样的操作:

    Host whatever
        Hostname        whatever.com
        User            username
        ForwardAgent    yes
    

    如果您不熟悉该配置文件,请使用 ssh whatever 调用它。

    【讨论】:

    • 嘿,很遗憾我正在连接到一个服务器,这个服务器需要保存身份,所以我的影响力有限。我有不同的密钥,所以转发也不起作用。我真的不明白其他事情是否对我有用。我编辑了这个问题,也许这能让你更好地了解我想要达到的目标。
    • 如果是 pull-only,那么您可以在 GitHub 中使用部署密钥(只读)。在https://github.com/<username>/<project>/admin/keys 创建一个并将相应的私有一半放在您的网络服务器上。您将在没有密码的情况下创建它,但密钥的范围有限并且是只读的。
    • "你用 ssh 调用这个,..." 是的,或者直接使用这样的用户名:ssh username@hostssh max@domain.com
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-16
    • 2018-03-31
    • 2015-05-16
    • 2020-08-26
    • 2021-11-27
    • 2015-05-07
    相关资源
    最近更新 更多