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/config
recebo 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 %h
e %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 h
argumento 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.