スコープ ID 付きの IPv6 アドレスを ssh 構成ファイルに追加するにはどうすればよいですか?

スコープ ID 付きの IPv6 アドレスを ssh 構成ファイルに追加するにはどうすればよいですか?

Linuxでは、IPv6アドレスの末尾にスコープIDがあり、その前にパーセント記号が付きます。例: fe80::1%usb0IPv6 アドレスにパーセント記号「%」が含まれているのはなぜですか?

このようなエントリを 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 では括弧を使用することをお勧めします。

関連情報