SSH 协议中的命令有标准的分隔字符吗?

SSH 协议中的命令有标准的分隔字符吗?

在以 SSH 作为传输介质编写的命令或 RPC 协议中,是否有 SSH 服务器用来解析命令的标准分隔符?

例如,如果我们在客户端和服务器之间定义了一个简单的协议,客户端将打开到服务器的 SSH 连接,然后开始发送字节:

DO COMMAND <something> DO C0MMAND2

有标准吗<something>?或者 SSH 上的每个协议都“做自己的事情”。

作为标准示例,“空终止字符串是一种 C 构造,用于确定要用作字符串的字符序列的结尾。”:https://stackoverflow.com/questions/34621006/how-can-a-file-contain-null-bytes

如果没有标准,是否需要根据“消息格式”为 SSH 服务器编写自定义解析器?

我的高级问题是 SSH 框架是否知道如何根据某些标准“拆分消息”,或者协议的每个 SSH 服务器是否都是用自定义侦听器编写的,并且必须知道何时收到“完整”消息,等待下一个分隔符等

答案1

安全 shell 就是一种使用方法:。因此,通过 SSH 进行命令分隔的语法与本地命令分隔相同:

me@localworkstation:~
$ echo foo; whoami; hostname
foo
me
localworkstation
me@localworkstation:~
$ ssh myself@remote "echo foo; whoami; hostname"
foo
myself
remote

相关内容