我做了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的请求调用的,所以我不能给它密码。
答案 0 :(得分:2)
如果您在会话开始时产生代理,那么当您断开连接时它就会死亡。您可以连接到屏幕或byobu / tmux服务器,使代理保持活动状态(如果您连接ssh user@hostname -t 'byobu'
,则可以跳过bash实例)。
否则,请在机器启动时启动代理程序,以便会话运行不会影响它。
修改:您还可以从本地计算机转发代理。如果你碰巧在两台机器上都有相同的密钥,那么这种方法非常有效。在~/.ssh/config
:
Host whatever
Hostname whatever.com
User username
ForwardAgent yes
如果您不熟悉该配置文件,请使用ssh whatever
调用此方法。