¿Cómo puedo agregar una dirección IPv6 con un ID de alcance al archivo de configuración ssh?

¿Cómo puedo agregar una dirección IPv6 con un ID de alcance al archivo de configuración ssh?

En Linux, una dirección IPv6 puede tener un ID de alcance al final con un signo de porcentaje antes. Por ejemplo: fe80::1%usb0. Ver¿Por qué hay un signo de porcentaje '%' en la dirección IPv6?

Quiero agregar dicha entrada a mi configuración ssh, pero si la agrego HostName fe80::1%usb0, ~/.ssh/configaparece un error:

percent_expand: unknown key %u

Respuesta1

Necesitas duplicar el signo de porcentaje, así:

Host vmiab
    HostName fe80::1%%usb0

configuración sshtiene varias sustituciones como %hy %l, y si desea un signo de porcentaje literal, debe utilizar el escape como %%.

Respuesta2

En caso de que todavía estés intentando ejecutar comandos proxy en la línea de comandos en zsh, aquí tienes un ejemplo de cómo usarlo con direcciones ipv6.

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

Vea cómo el hargumento ahora tiene corchetes escapados pero el ipv6 no tiene ninguno

Respuesta3

Además del carácter de escape del signo de porcentaje, puede ser necesario incluir una dirección ipv6 entre corchetes [].
Es necesario cuando un ProxyCommand utiliza el nombre de host.

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

O puede incluir el host [%h]en ProxyCommand (solución preferida)

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

Es mejor usar los corchetes en ProxyCommand, porque usar corchetes en el nombre de host solo funciona con ProxyCommand, pero falla sin él.

información relacionada