Как добавить IPv6-адрес с идентификатором области действия в файл конфигурации ssh?

Как добавить IPv6-адрес с идентификатором области действия в файл конфигурации ssh?

В Linux адрес IPv6 может иметь идентификатор области действия в конце со знаком процента перед ним. Например: fe80::1%usb0. См.Почему в IPv6-адресе присутствует знак процента «%»?

Я хочу добавить такую ​​запись в свою конфигурацию ssh, но если я добавлю HostName fe80::1%usb0ее ~/.ssh/config, то получу ошибку:

percent_expand: unknown key %u

решение1

Вам нужно удвоить знак процента, вот так:

Host vmiab
    HostName fe80::1%%usb0

ssh-конфигурацияимеет различные замены, такие как %hи %l, а если вам нужен буквальный знак процента, его нужно экранировать как %%.

решение2

Если вы все еще пытаетесь выполнять команды прокси в командной строке zsh, вот пример того, как использовать его с адресами IPv6.

ssh -v -o "ProxyCommand sush -W \[%h\]:%p your_jump_server" your_user@aabb:aabb:aabb:aabb:aabb:aabb:aabb:0000

Посмотрите, как hаргумент теперь имеет экранированные скобки, но ipv6 не имеет никаких

решение3

Помимо экранирования знака процента, может потребоваться заключить адрес ipv6 в скобки [].
Это необходимо, когда имя хоста используется ProxyCommand.

Host vmiab
    HostName [fe80::1%%usb]
    ProxyCommand ssh my_proxy_host -W %h:%p

Или вы можете заключить хост [%h]в ProxyCommand (предпочтительное решение)

Host vmiab
    HostName fe80::1%%usb
    ProxyCommand ssh my_proxy_host -W [%h]:%p

Лучше использовать скобки в ProxyCommand, поскольку использование скобок в имени хоста работает только с ProxyCommand, но без него приводит к ошибке.

Связанный контент