这是一件非常难以通过谷歌搜到的事情。我使用笔记本电脑配置的工作环境,在一天结束时我会休眠或关闭它。显然这样做会中断在putty上的SSH会话。经过一番尝试,我发现了一个很好的方法,可以自动启动屏幕并在通过putty重新连接时恢复已断开的会话(即在我的.bashrc文件末尾添加if [ -z "$STY" ]; then screen -R; fi
)。
这个方法运行得很好,但我仍然有一个问题。我在笔记本电脑上通过Pageant使用SSH代理转发到辅助服务器(我最初输入密码的地方)。从我所知,当putty会话断开时,该套接字会被破坏,并且在重新加载和重新连接到屏幕时不会重新连接。
下面是我的测试:
20:01:38 {~/test}$ git clone git@github.com:coldcandor/env.git
Cloning into 'env'...
remote: Counting objects: 1105, done.
remote: Total 1105 (delta 0), reused 0 (delta 0), pack-reused 1105
Receiving objects: 100% (1105/1105), 341.06 KiB | 453.00 KiB/s, done.
Resolving deltas: 100% (544/544), done.
Checking connectivity... done.
20:01:43 {~/test}$ rm -rf env
断开puTTY并重新连接
20:01:58 {~/test}$ git clone git@github.com:coldcandor/env.git
Cloning into 'env'...
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
如您所见,它不能保留转发。但是,如果我不重新连接到屏幕,或在重新连接后完全退出并重新打开屏幕,则一切正常。
我该如何解决这个问题?