Archive

Posts Tagged ‘screen’

Tips:autossh

June 6th, 2006

SSH的特性就是安全,如果一个连接长期闲置,那么就可能被利用,所以SSH服务端一般都会有一个超过Idle时间踢出的设置。不过像我们经常会用SSH登陆到远程服务器上长时间的工作的,这个特性就非常不方便了。于是autossh,就是这么一个牺牲安全性,换取便利性的工具。

autossh通过建立另一个SSH连接来监视工作SSH连接,当工作连接断开的时候,能够自动发起重连。不过你得设置ssh-agent,否则,重连的时候还是会提示你输入密码的,这样就失去意义了。

不过,就算是重连,你正在做的工作也会因为失去连接登出而都被杀死的。这时候就该GNU screen登场了。在你ssh到远程服务器的时候,启动一个screen Session,screen可以让你在ssh失去连接的时候自动detach,然后重连上来的时候,只要用screen -D -R取回screen Session就可以了。而且,autossh自带了一个非常好用的script rscreen,已经完完整整的帮忙做好了这件事情,只要直接拿过来用就可以了。

至于安装嘛,对于Debian,照例只要apt就可以了,下面贴一下我的对rscreen的小小修改,去掉了不需要的键设置,使用remoteSSH做为screen Session的名字以区别其他的screen Session,接收全部的ssh参数:

--- /usr/share/doc/autossh-1.3/examples/rscreen 2005-03-23 10:05:20.001000000 +0800
+++ /usr/local/bin/rscreen  2006-05-16 11:41:23.705698100 +0800
@@ -23,4 +23,4 @@
 #AUTOSSH_PATH=/usr/local/bin/ssh
 export AUTOSSH_POLL AUTOSSH_LOGFILE AUTOSSH_DEBUG AUTOSSH_PATH AUTOSSH_GATETIME AUTOSSH_PORT

-autossh -M 20004 -t $1 "screen -e^Zz -D -R"
+autossh -M 20004 -t $* "screen -D -R remoteSSH"

Linux , ,