快速导航

远程登录示例

关于远程登录?

嵌入?

用来控制远程服务器上运行的应用程序字符?

转义?

操作方式?

关于SSH?

远程登录示例

TCP/IP TELNET & SSH_控制字符

关于远程登录?

网络虚拟终端(Network Virtual Terminal,NVT)
通过这个接口,TELNET客户把来自本地终端的字符(数据或命令)转换成NVT形式,然后交付给网络。

TCP/IP TELNET & SSH_服务器_02

【NVT概念图】

嵌入?

TELNET通过把控制字符嵌入到数据流中来实现数据和控制字符的发送在同一条连接上。
为了把数据和控制字符区分开,每一个控制字符序列的前面要加上一个特殊的控制字符,称为IAC。
比如输入了cat file1,结果多了一个a,成了cat filea1,这个时候就要回退。
但是编辑工作必须在服务器上完成,这个时候回退字符被转化为两个控制字符IAC EC,它嵌入到数据中,被发送到远程服务器。

TCP/IP TELNET & SSH_数据_03

【嵌入概念图】

用来控制远程服务器上运行的应用程序字符?

字符   十进制 二进制  意义
IP(Internet Process) 244  11110100 中断进程
AO(Abort Output) 245 11110101 一场终止输出
AYT(Are You There?) 246 11110110 对方是否在运行
EC(Erase Character) 247 11110111 擦除最后一个字符
EL(Erase Line) 248 11111000 擦除一行

TCP/IP TELNET & SSH_数据_04

【中断例子】

转义?

 用户键入的字符在正常情况下是发送给服务器的。但是,有时候用户希望这些字符由客户而不是服务器来解释。这种情况下,用户要使用转义字符,Ctrl+](记为^])
如下图所示

 TCP/IP TELNET & SSH_数据_05

【中断应用程序】

 TCP/IP TELNET & SSH_数据_06

 【中断客户】

操作方式?

1.默认方式(半双工,等待服务器的GA前进命令。一整行都完成之前并不发送这些字符。)
2.字符方式(每一个键入的字符都会由客户发送给服务器。如果传输时间较长,这种回显可能被延迟。
它会产生网络开销,因为每一个数据字符必须发送三个TCP报文段:
a.用户键入一个字符,它被发送给服务器。
b.服务器确认收到的字符,并把该字符回显,一个报文段。
c.客户确认收到回显的字符。
3.行方式(线下整理笔记,其实就是行方式的一种体现。在行方式中,行编辑,包括回显、字符擦除、行擦除是由客户来完成。然后客户把一整行字符发送给服务器。客户一行接一行地发送,不需要服务器GA参与其中。)

关于SSH?

 1.组成
SSH-AUTH,SSH-CONN,SSH-TRANS(SSH运输层协议),SSH应用

TCP/IP TELNET & SSH_应用程序_07
【图示】
SSH-TRANS(SSH运输层协议),因为TCP不是安全的运输层协议,所以SSH首先使用在TCP之上能够构建安全信道的协议。
SSH-AUTH(SSH鉴别协议),客户对服务器鉴别之后,服务器对客户也鉴别。
SSH-CONN(SSH连接协议),SSH-CONN利用前两个协议建立的安全信道,让客户在该信道上创建多个逻辑信道。
SSH-应用,远程登录只是利用了SSH-CONN协议的众多服务之一,其他一些应用,比如文件传输,也可以使用其中的一条逻辑信道来完成自己的任务。

2.端口转发?
TELNET客户和TELNET服务器之间的连接虽然直接但缺少安全性,通过端口转发我们可以改变这种状况。

TCP/IP TELNET & SSH_应用程序_08
【端口转发概念图】