OpenSSH 最常被忽视的一个非常有用的功能是能够从连接内部控制会话的某些方面。通过使用 SSH 转义代码,我们能够在会话内部与本地 SSH 软件进行交互。

强制从客户端断开连接(如何退出卡住或冻结的会话)

这些命令可以在 SSH 会话中以 ~ 控制字符开头执行。只有在换行后第一次键入时才会解释控制命令,因此在使用之前始终按 ENTER 键一两次。

我们可以从客户端发起断开连接。SSH 连接通常由服务器关闭,但如果服务器遇到问题或连接已中断,则可能会出现问题。通过使用客户端断开,可以从客户端清洁地关闭连接。

要从客户端关闭连接,请使用控制字符 ~,后跟一个句点 .。如果您的连接出现问题,您可能会发现自己处于似乎被卡住的终端会话中。尽管缺乏反馈,仍需输入命令以执行客户端断开连接:

[ENTER]
~.

连接应立即关闭,将您带回本地 shell 会话。

将一个 SSH 会话放入后台

按下控制字符 ~,然后执行将任务放到后台的常规键盘快捷键 Ctrl Z

[ENTER]
~[CTRL-z]

这将把连接放到后台,将您返回到本地 shell 会话。要返回到 SSH 会话,您可以使用传统的作业控制机制。

您可以通过输入 fg 来立即重新激活您最近的后台任务:

fg

如果您有多个后台任务,您可以通过输入以下命令来查看可用的作业:

$ jobs
[1]+ Stopped ssh username@some_host
[2] Stopped ssh username@another_host

您可以通过使用第一列中的索引和百分号将任何任务带到前台:

fg %2

更改现有 SSH 连接上的端口转发选项

用户可以在连接已经建立之后更改端口转发配置。这允许您即时创建或拆除端口转发规则。

这些功能是 SSH 命令行界面的一部分,可以在会话期间通过使用控制字符 ~C 来访问:

[ENTER]
~C
ssh>

您将获得一个 SSH 命令提示符,其中只有非常有限的一组有效命令。要查看可用选项,您可以从此提示符中键入 -h。如果没有返回任何内容,您可能需要使用 ~v 几次来增加 SSH 输出的详细程度:

[ENTER]
~v
~v
~v
~C
-h
Commands:
-L[bind_address:]port:host:hostport Request local forward
-R[bind_address:]port:host:hostport Request remote forward
-D[bind_address:]port Request dynamic forward
-KL[bind_address:]port Cancel local forward
-KR[bind_address:]port Cancel remote forward
-KD[bind_address:]port Cancel dynamic forward

正如您所看到的,您可以轻松地使用适当的选项来实现任何转发选项(有关更多信息,请参阅转发部分)。您还可以使用与转发类型字母前的 K 指定的 kill 命令来销毁隧道。例如,要销毁本地转发 -L,您可以使用 -KL 命令。您只需要为此提供端口。

因此,要设置本地端口转发,您可以输入:

[ENTER]
~C
-L 8888:127.0.0.1:80

您本地计算机上的端口 8888 现在将能够与您正在连接的主机上的 Web 服务器进行通信。完成后,您可以通过输入以下内容来关闭该转发:

[ENTER]
~C
-KL 8888

参考:使用 SSH 转义代码来控制连接

使用 SSH 转义代码来控制连接的更多相关文章

  1. PHP控制连接打印机

    一.需求 使用PHP控制连接打印机 现场实时连续打印动态数据 二.配置 php运行环境正确安装(Apache|Nginx + PHP) 下载与php版本对应的php_printer.dll扩展 扩展文 ...

  2. Mac下git通过SSH进行免密码安全连接github

    Git——The stupid content tracker(傻瓜内容跟踪器) Git是Linux的缔造者Linus Torvalds为了帮助管理Linux内核源码而开发的一款免费.开源的分布式版本 ...

  3. 通过 SSH 隧道方式图形化连接 AIX 服务器

    跳转到主要内容 登录 (或注册) 中文 [userid] IBM ID: 密码: 保持登录. 单击提交则表示您同意developerWorks 的条款和条件. 查看条款和条件. 需要一个 IBM ID ...

  4. javax.transaction.xa.XAException: java.sql.SQLException: 无法创建 XA 控制连接。(SQL 2000,SQL2005,SQL2008)

    javax.transaction.xa.XAException: java.sql.SQLException:无法创建 XA 控制连接.错误: 未能找到存储过程'master..xp_sqljdbc ...

  5. 使用XML布局文件和Java代码混合控制UI界面

    完全使用Java代码来控制UI界面不仅烦琐.而且不利于解耦:而完全利用XML布局文件来控制UI界面虽然方便.便捷,但难免有失灵活.因此有些时候,可能需要混合使用XML布局文件和代码来控制UI界面. 当 ...

  6. 在代码中控制UI界面

    虽然Android推荐使用XML布局文件来控制UI界面,但如果开发者愿意,Android允许开发者完全抛弃XML布局文件,完全在Java代码中控制UI界面. 实例:用编程的方式开发UI界面 packa ...

  7. mysql ssh 跳板机(堡垒机???)连接服务器

    跳板机(Jump Server),也称堡垒机,是一类可作为跳板批量操作远程设备的网络设备,是系统管理员或运维人员常用的操作平台之一. 正常的登录流程 使用ssh命令登录跳板机: 登录跳板机成功后,在跳 ...

  8. ssh方式与服务器建立连接

    package com.ustcinfo.cinas.pmng.util; import java.io.BufferedReader; import java.io.InputStream; imp ...

  9. SSH Secure File Transfer Client连接远程设备报“algorithm negotiation failed”错的解决方法

    SSH Secure File Transfer Client连接远程设备报"algorithm negotiation failed"错的解决方法 ssh client 报 al ...

  10. Beaglebone Black教程使用SSH通过USB和因特网连接Beaglebone Black

    Beaglebone Black教程使用SSH通过USB和因特网连接Beaglebone Black 使用SSH通过USB和因特网连接Beaglebone Black SSH是Secure Shell ...

随机推荐

  1. 动手学Avalonia:基于SemanticKernel与硅基流动构建AI聊天与翻译工具

    Avalonia是什么? Avalonia是一个跨平台的UI框架,专为.NET开发打造,提供灵活的样式系统,支持Windows.macOS.Linux.iOS.Android及WebAssembly等 ...

  2. WIN 11 共享设置

    我的电脑 -> 管理 -> 用户 -> 解除 GUEST 禁用 gpedit.msc -> 计算机管理 -> 本地 -> 从网络上访问本机 -> 允许GUES ...

  3. python subprocess读取终端输出内容

    参考链接:https://www.cnblogs.com/songzhenhua/p/9312718.html https://www.cnblogs.com/darkchii/p/9013673.h ...

  4. Mybatis XXXMapper.xml映射文件配置

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "- ...

  5. 外部网关协议BGP

    不能全部使用RIP与OSPF的原因有二:互联网规模太大,自治系统间路由选择困难:自治系统间路由选择必须考虑有关策略. 在每一个自治系统中有两种不同功能的路由器,边界路由器和内部路由器. BGP四种报文 ...

  6. 将传统应用带入浏览器的开源先锋「GitHub 热点速览」

    现代浏览器已经不再是简单的浏览网页的工具,其潜能正在通过技术不断地被挖掘和扩展.得益于 WebAssembly 等技术的出现,让浏览器能够以接近原生的速度执行非 JavaScript 语言编写的程序, ...

  7. tensorflow学习率指数衰减ExponentialDecay的参数介绍与使用方法

      本文介绍在tensorflow库中,用于动态调整神经网络的学习率的一种方法--指数衰减ExponentialDecay()策略的参数含义及其具体用法.   在进行神经网络训练时,我们经常需要用到动 ...

  8. 如何在AS中实现mysql查询并输出在视图上

    新建子线程启用mysql new Thread(){ @override public void run(){ //在这里进行数据库调用 } }.start(); handler简单使用方法 hand ...

  9. 写写Redis十大类型GEO(地理空间)的常用命令

    又是一个用于处理sql性能的类型,这个类型的核心思想就是把三维的地球变成二维的坐标,再将二维的坐标换成一维的点块,最后将一维的点块转化成base32编码 类型就是zset, 在shell的启动命令后加 ...

  10. STM32定时器---正交编码器模式详解

    https://blog.csdn.net/wang328452854/article/details/50579832