从我的本地机器发起到远程机器的 ssh 连接是双向的吗?

从我的本地机器发起到远程机器的 ssh 连接是双向的吗?

我最近刚刚为自己设置了一个 VPS 服务器,在设置时我确实采取了所有必要的预防措施。我打算使用类似 的命令在本地计算机上访问网站ssh -L 8080:127.0.0.1:3000 remote-user@remote-ssh-server

虽然我确实采取了所有安全预防措施,但我想知道,如果远程服务器在我不知情的情况下以某种方式受到损害,那么当我连接到本地计算机时,入侵者是否能够访问它?

此外,上述用于远程浏览本地页面的机制是否可以防止窃听和 MIM 攻击?

答案1

如果远程服务器在我不知情的情况下以某种方式受到威胁,那么当我连接到本地计算机时,入侵者是否能够访问它?

高级功能并不对称;shell 会话等功能只能单向工作。客户端将不会响应来自服务器的“shell”或“exec”通道请求——它故意甚至没有处理它们所需的代码。

然而,反向请求。如果您在启用“代理转发”的情况下进行连接,客户端将允许服务器使用 ssh-agent 中的所有密钥(但不会检索实际私钥)。如果您在启用“X11 转发”的情况下进行连接,客户端同样将允许服务器访问您的 X11 窗口内容,甚至可能允许伪造输入。如果您使用 Kerberos 并在启用“GSSAPI 委派”的情况下进行连接,服务器将直接获得您的 Kerberos 凭据的副本。

此外,如果您仍然有交互式 shell 连接(即不使用-N或 ControlMaster),服务器上的进程只要对 /dev/pts/# 设备具有写入权限,就可以将任何数据发送到您的终端。大多数终端仿真器通常会忽略“危险”的转义码(例如 OSC“运行命令”序列是最成问题的示例),但服务器仍然会通过使终端窗口在屏幕上移动、在 ANSI 艺术中向您表演 rickrolling 等方式来骚扰您。最后,尽管终端仿真器应该针对格式错误的数据进行合理的强化,但它们过去曾有过各种各样的功绩。

此外,上述用于远程浏览本地页面的机制是否可以防止窃听和 MIM 攻击?

它确实可以防止您和 SSH 服务器之间的路径上的被动和主动攻击,因为所有数据都在 SSH 连接内进行隧道传输,并获得与通过 SSH 的所有其他内容相同的保护(加密和完整性)。

才不是保护服务器本身免受攻击者的攻击,因为 sshd 对其收到的明文数据具有完全访问权限。(如果有明文数据进入,则必须输出明文数据,原因很明显。)sshd 可以修改您的数据,甚至可以将您连接到您要求的目的地以外的其他目的地。

它也无法保护 SSH 服务器和实际转发目的地之间的任何路径上的攻击者(服务器自己的操作系统是可能的攻击点)。您仍然需要使用 HTTPS 来保护实际的转发连接。

相关内容