在 Ubuntu 16.04 中,我执行了:
eval $(ssh-agent) && ssh-add
Run Code Online (Sandbox Code Playgroud)
我有:
Agent pid 3361
Run Code Online (Sandbox Code Playgroud)
然后,在插入我的密码后,我成功地通过 SSH 隧道连接到我的 VPS。
嗯,这不是一个“问题”,但是:
我回到了我的本地会话 exit
,当我再次尝试登录到我的 VPS 时,我不得不重新输入我的密码...
为什么我会被要求再次输入密码?
我没有关闭当前会话,而是eval $(ssh-agent) && ssh-add
在隧道之前关闭了。那么,为什么系统不会“记住”它呢?
每次执行此操作时eval $(ssh-agent) && ssh-add
,都会启动一个新代理,因此您需要重新对其进行身份验证。
我认为最好的方法是在每个会话中永久存储 SSH 代理数据(在您的 中~/.profile
):
export SSHPROC=${HOME}/.ssh/cur-proc.${HOSTNAME}
restart_ssh_agent(){
. ${SSHPROC}
kill ${SSH_AGENT_PID}
/bin/rm -rf ${SSHPROC} ${SSH_AUTH_SOCK} /tmp/ssh-*
ssh-agent > ${SSHPROC}
cat ${SSHPROC}
. ${SSHPROC}
ssh-add
}
Run Code Online (Sandbox Code Playgroud)
并添加. ${SSHPROC}
到您的.bashrc
.
然后您调用restart_ssh_agent
一次(或者当它因某种原因终止时),然后将您的凭据保留给代理。
归档时间: |
|
查看次数: |
717 次 |
最近记录: |