我经常使用 ssh 连接到我大学的各种服务器。这些机器由学生管理,因此假设它们不能真正被信任;-)
与我无法控制的主机建立 ssh 连接有哪些风险?可以从服务器端获取有关 ssh 客户端的哪些信息?他们是否有机会从我的客户端计算机上的服务器打开 shell?
我经常使用 ssh 连接到我大学的各种服务器。这些机器由学生管理,因此假设它们不能真正被信任;-)
与我无法控制的主机建立 ssh 连接有哪些风险?可以从服务器端获取有关 ssh 客户端的哪些信息?他们是否有机会从我的客户端计算机上的服务器打开 shell?
还有一个很大的风险:SSH 代理转发。如果您使用代理转发,任何在您 SSH 进入的服务器上的 root 用户都可以使用您的 ssh 私钥建立新连接。有关代理转发的更多信息,请参阅http://unixwiz.net/techtips/ssh-agent-forwarding.html。
SSH 不允许从远程服务器打开客户端上的 shell。它确实支持反向端口转发,但这是通过 -R 或 ~-command 在客户端启动的。
主要风险是 X11 转发。如果您的 SSH 客户端配置为允许服务器上的程序在您的屏幕上呈现 gui 窗口,则会出现问题。即使是不受信任的 X11 程序也会造成很大的损害。所以最好在命令行或者ForwardX11 no
ssh_config文件中使用-x(重要:小x)。
-X
启用 X11 转发。这也可以在配置文件中基于每个主机指定。应谨慎启用 X11 转发。具有绕过远程主机文件权限的用户(对于用户的X授权数据库)可以通过转发连接访问本地X11显示器。然后,攻击者可能能够执行诸如击键监控之类的活动。
因此,X11 转发默认受到 X11 SECURITY 扩展限制。
-x
禁用 X11 转发。
-Y
启用受信任的 X11 转发。受信任的 X11 转发不受 X11 SECURITY 扩展控制的约束。
来源: man ssh