我知道 sshd 是 SSH 守护进程,也充当 SSH 服务器。我对细节更感兴趣。从 ssh 的手册页来看,
https://linux.die.net/man/1/ssh
有一些高级解释,比如它是一个用于登录远程机器并执行命令的程序,但是关于 sshd 的工作以及 ssh 所做的事情的细节并不多。
有任何想法吗?
BR帕特里克
编辑
我知道 sshd 也有一个手册页,
https://linux.die.net/man/8/sshd
然而,这并没有为我的问题提供更多答案。这里有些事情有点晦涩难懂,如果知道的话会更好。
- 例如,sshd 中是否建立了 TCP 连接,如果建立了,ssh 如何访问它?
- sshd 中的会话是否同时为传出和传入连接设置,或者 ssh 程序是否处理传出连接?
- sshd 是否始终处理连接,还是将其委托给 ssh?如果是那样,该怎么做?
答案1
您的问题不清楚。
SSHD
是服务器(类似于提供 https 服务的 Web 服务器)SSH
是客户(类似于浏览器)。
为了正常工作,需要协商一组兼容的协议和身份验证机制。通常,服务器定义它将接受什么,而客户端协商最佳的通用协议。
SSH 协议本身只不过是一个经过深思熟虑、经过加密和验证的 TCP 流,通常允许其他流通过它进行隧道传输。它通常用于运行像 telnet 这样的交互式会话,但它同样可以用于隧道传输/其他协议,或扩展以允许 scp 文件传输。通常,SSH 客户端将定义语法,而客户端和服务器需要协同工作才能启用该功能。
通常,客户端(用户)将使用用户凭证向服务器验证自身身份。服务器通常不会向客户端验证身份,但会提供自己的(服务器)公钥,该公钥可被指纹识别、检查和记住,以阻止 MITM 攻击。