From: http://blog.jianingy.com/node/88
SSH逃逸键的作用有些类似Telnet的”^]“逃逸。可以让你在一个连接好的终端上进一步控制SSH连接。首先,我们看看这个逃逸键能帮我们做什么。在SSH终端里输入回车然后马上输入字符”~“再输入字符”?“,便可以调出SSH逃逸键使用帮助。你应该能看到类似下面的输出:
blackhole:~ $ ~?
Supported escape sequences:
~. - terminate connection (and any multiplexed sessions)
~B - send a BREAK to the remote system
~C - open a command line
~R - Request rekey (SSH protocol 2 only)
~^Z - suspend ssh
~# - list forwarded connections
~& - background ssh (when waiting for connections to terminate)
~? - this message
~~ - send the escape character by typing it twice
(Note that escapes are only recognized immediately after newline.)
注意最后一行的Note,它说明了逃逸键使用的条件,即必须在回车后马上键入逃逸键。
比较常用的功能可能是用 "~."
断开一个连接。有些时候我们在SSH终端上启动了有问题的daemon程序,或是SSH连接因为某种原因进入stalled状态,导致SSH不能正常终止。这时候就可以使用“~.”
来终止这个连接。这要比关闭再打开你的终端窗口方便很多。
“~C“会打开一个SSH控制终端。在这个控制终端里,你可以进行端口映射的设置。也就是输入和SSH命令行参数一样的-L或是-R什么的。
“~^Z“是一个比较有趣的功能,可以让你挂起一个SSH连接并回到localhost的终端上。你可以用这个功能做些localhost上的操作再fg回去。也可以在做了端口转发后退出SSH终端并通过bg把它放到后台去。
逃逸键可以通过在执行SSH的时候用-e参数进行就改,具体方法请查看man ssh吧。