gee*_*aur 26
SSH 协议由ssh
和sshd
程序接受的内容定义。(有一个为它定义的标准,但它是事后的事情,当其中一个实现添加新功能时,通常会被忽略。)由于这些实现有多种(OpenSSH、F-Secure、PuTTY 等)。 ) 有时您会发现其中一个不支持与其他相同的协议。基本上,它定义了身份验证协商和复用数据流的创建。这个流可以携带一个或多个(使用 OpenSSH 和ControlMaster
) 终端会话和零个或多个隧道(将套接字连接从本地或远程转发到另一端;X11 转发是远程转发的一种特殊情况)。它还定义了可以在流上使用的“子系统”;终端会话是基本子系统,但可以定义其他子系统。 sftp
是其中之一。
ssh
该实用程序使用 SSH 协议与sshd
另一台机器进行通信。它的工作方式取决于它是什么版本(见上文),但它的要点是它尝试找出使用哪个版本的 SSH 协议,然后sshd
协商支持的身份验证方法,然后尝试使用其中一种方法(根据需要询问远程用户密码/私钥 paasword/S-Key 短语),并在成功验证后使用sshd
.
sshd
如上所述,实现了 SSH 协议的服务器端。
sftp
是大多数sshd
实现中定义的(目前唯一的标准)子系统。当请求 SFTP 子系统时,sshd
连接sftp-server
到子系统会话;该sftp
程序然后会谈到它,类似于ftp
但与复用在流,而不是使用单独的连接,与文件传输ftp
。
su
与ssh
, sshd
, 或无关sftp
,除非可能有 PAM 模块来安排多路复用流在 shell 或由它运行的程序中可用。
查看OpenSSH 项目。它有你要找的所有信息。
简而言之,SSH 协议允许两台主机之间的安全(加密)连接。该ssh
实用程序是一个使用 SSH 协议登录远程系统的客户端程序,它还有很多其他用途,例如 [反向] 隧道/端口转发/...
sshd
这是服务器软件。它提供了一个守护进程来响应传入的 SSH 请求。
su
与 ssh 无关。它用于更改活动用户(最常见的用途是成为root
)。