Como posso adicionar um endereço IPv6 com um ID de escopo ao arquivo de configuração ssh?

Como posso adicionar um endereço IPv6 com um ID de escopo ao arquivo de configuração ssh?

No Linux, um endereço IPv6 pode ter um ID de escopo no final com um sinal de porcentagem antes dele. Por exemplo: fe80::1%usb0. VerPor que existe um sinal de porcentagem '%' no endereço IPv6?

Quero adicionar essa entrada à minha configuração ssh, mas se eu adicionar HostName fe80::1%usb0, ~/.ssh/configrecebo um erro:

percent_expand: unknown key %u

Responder1

Você precisa dobrar o sinal de porcentagem, assim:

Host vmiab
    HostName fe80::1%%usb0

ssh-configtem várias substituições, como %he %l, e se você quiser um sinal de porcentagem literal, ele deverá ser escapado como %%.

Responder2

Caso você ainda esteja tentando executar comandos proxy na linha de comando no zsh, aqui está um exemplo de como usá-lo com endereços ipv6

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

Veja como o hargumento agora tem colchetes de escape, mas o ipv6 não tem nenhum

Responder3

Além do escape do sinal de porcentagem, pode ser necessário colocar um endereço IPv6 entre colchetes [].
É necessário quando o nome do host é usado por um ProxyCommand.

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

Ou você pode incluir o host [%h]no ProxyCommand (solução preferida)

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

É melhor usar colchetes no ProxyCommand, porque usar colchetes no nome do host só funciona com ProxyCommand, mas falha sem ele.

informação relacionada