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
보안 셸은 이를 사용하는 한 가지 방법입니다.껍데기. 따라서 SSH를 통한 명령 구분 구문은 로컬 명령 구분과 동일합니다.
me@localworkstation:~
$ echo foo; whoami; hostname
foo
me
localworkstation
me@localworkstation:~
$ ssh myself@remote "echo foo; whoami; hostname"
foo
myself
remote