Linuxでは、IPv6アドレスの末尾にスコープIDがあり、その前にパーセント記号が付きます。例: 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 では括弧を使用することをお勧めします。