Ale*_*kiy 18 networking ssh subnet netmask
我们有一台服务器,我们的一名工程师错误地配置了子网,现在我们被锁定在这台服务器之外,我所知道的唯一访问是来自 IDC 的串行控制台(这意味着要求 IDC 工程师帮助我们解决这个问题) .
配置错误的地方:
address 192.168.1.9 # Original address there was
netmask 255.255.255.254 # Misconfigured, originally should've been .240
Run Code Online (Sandbox Code Playgroud)
出于好奇 - 有没有办法避免调用 IDC 并以某种方式通过 SSH 连接到该主机(然后我们可以修复配置)?
kas*_*erd 25
您需要能够在同一网段的另一台主机上登录。访问配置错误的主机的一些方法需要在中间主机上使用 root,但也有一种简单的方法可以在不需要中间主机上的 root 的情况下访问。
使用 IPv6 访问主机的简便方法
ssh -o ProxyCommand='ssh -W [fe80::42:ff:fe:42%%eth0]:%p user@intermediate-host' root@target-server
Run Code Online (Sandbox Code Playgroud)
在上面的命令需要下面的示例值与正确的值被替换为你的使用情况:fe80::42:ff:fe:42,eth0,user,intermediate-host,和target-server。
详细解释它是如何工作的
ProxyCommand是当您无法直接打开到目标主机的 TCP 连接时使用的 ssh 功能。参数 toProxyCommand是一个命令,其 stdin/stdout 用来代替 TCP 连接。
-W用于打开单个端口转发并将其连接到标准输入/标准输出。这与ProxyCommand.
fe80::42:ff:fe:42%%eth0是目标主机的链路本地地址。请注意,由于ProxyCommand使用%作为转义字符,类型化的ssh命令必须使用%%在该位置。您可以通过运行找到该段上的所有链路本地地址ssh user@intermediate-host ping6 -nc2 ff02::1%eth0。
为此目的使用 IPv6 链接本地地址通常是最简单的方法,因为它在所有现代系统上默认启用,并且即使 IPv4 和 IPv6 堆栈都严重错误配置,链接本地地址仍然可以工作。
回退到 IPv4
如果在错误配置的主机上完全禁用 IPv6(绝对不推荐),那么您可能不得不求助于使用 IPv4。由于 IPv4 没有 IPv6 那样的链路本地地址,因此使用 IPv4 访问配置错误的主机变得更加复杂,并且需要在中间主机上进行 root 访问。
如果配置错误的主机仍然能够使用其默认网关,您将能够从外部访问它。由于堆栈拒绝使用网络掩码覆盖的前缀之外的网关,错误配置的网络掩码也可能破坏了默认网关。如果确实如此,错误配置的主机将只能与 192.168.1.8 通信,因为这是该错误配置的主机当前可访问的子网中唯一的其他 IP 地址。
如果您在 192.168.1.8 上登录,您可能只能从那里 ssh 到 192.168.1.9。如果 192.168.1.8 当前未分配,您可以临时将其分配给您具有 root 访问权限的网段上的任何主机。
kasperd发布了一个很好的答案,足够详细,让我了解如何从问题中恢复过来。这个答案是我如何做到这一点的确切步骤。
arp -a或ip neighbor listasroot查找配置错误的服务器的 MAC 地址。ssh user@link-local%dev:
| 归档时间: |
|
| 查看次数: |
3889 次 |
| 最近记录: |