0

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

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

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

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

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

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

4

1 回答 1

3

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

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

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

Host whatever
    Hostname        whatever.com
    User            username
    ForwardAgent    yes

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

于 2012-10-02T01:46:57.693 回答