虽然启动了ssh-agent,但SSH-add不是持久性事件

时间:2012-10-02 00:51:27

标签: ssh ssh-agent

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

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

我能做些什么来保持身份?

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

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

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

1 个答案:

答案 0 :(得分:2)

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

否则,请在机器启动时启动代理程序,以便会话运行不会影响它。

修改:您还可以从本地计算机转发代理。如果你碰巧在两台机器上都有相同的密钥,那么这种方法非常有效。在~/.ssh/config

中尝试这样的操作
Host whatever
    Hostname        whatever.com
    User            username
    ForwardAgent    yes

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