在 SSH 配置中将多个接口添加到一个 IPv6 主机名

在 SSH 配置中将多个接口添加到一个 IPv6 主机名

现在,我可以~/.ssh/config通过本地链路 IPv6 访问嵌入式设备:

Host someDevice
    # Hostname fe80::dcad:beff:feef:cafe%%eth0
    Hostname fe80::dcad:beff:feef:cafe%%enxf875a44106f9
    User root
    [some more options...]

我不希望每次网络接口发生变化时都进行手动交互。

  • 两者都被注释后,SSH 将仅使用第一个。
  • 为每个主机使用不同的主机是不切实际的。

有人已经自动化了吗?

现在,我正在研究match/etc/hosts归档以实现这一目标。我更喜欢配置发生在 SSH 配置文件中。

答案1

如果嵌入式设备支持mDns,这是最简单的方法。

如果必须是 IPv6:这可以工作,但并不完美。

# If eth0 is UP, use eth0:
Match originalhost  exec "[ $(ip a | awk '/state UP/ {print $2}' | grep eth) == 'eth0:' ]"
    Hostname fe80:::dcad:beff:feef:cafe%%eth0

# Default is enxf875
Host someDevice
    Hostname fe80::dcad:beff:feef:cafe%%enxf875a44106f9
    User root

相关内容