Wie kann ich der SSH-Konfigurationsdatei eine IPv6-Adresse mit einer Bereichs-ID hinzufügen?

Wie kann ich der SSH-Konfigurationsdatei eine IPv6-Adresse mit einer Bereichs-ID hinzufügen?

Unter Linux kann eine IPv6-Adresse am Ende eine Bereichs-ID mit einem Prozentzeichen davor haben. Beispiel: fe80::1%usb0. SieheWarum enthält die IPv6-Adresse ein Prozentzeichen „%“?

Ich möchte einen solchen Eintrag zu meiner SSH-Konfiguration hinzufügen, aber wenn ich ihn hinzufüge HostName fe80::1%usb0, ~/.ssh/configerhalte ich eine Fehlermeldung:

percent_expand: unknown key %u

Antwort1

Sie müssen das Prozentzeichen verdoppeln, und zwar wie folgt:

Host vmiab
    HostName fe80::1%%usb0

ssh-konfigurationhat verschiedene Ersetzungen wie %hund %l, und wenn Sie ein wörtliches Prozentzeichen wünschen, muss es als maskiert werden %%.

Antwort2

Falls Sie immer noch versuchen, Proxy-Befehle auf der Kommandozeile in zsh auszuführen, finden Sie hier ein Beispiel für die Verwendung mit IPv6-Adressen

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

Sehen Sie, wie das hArgument jetzt die Escape-Klammern hat, aber IPv6 hat keine

Antwort3

Neben dem Escapen des Prozentzeichens kann es notwendig sein, eine IPv6-Adresse in Klammern einzuschließen [].
Dies ist erforderlich, wenn der Hostname von einem ProxyCommand verwendet wird.

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

Oder Sie könnten den Host [%h]in den ProxyCommand einschließen (bevorzugte Lösung)

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

Es ist besser, die Klammern im ProxyCommand zu verwenden, da die Verwendung von Klammern im Hostnamen nur mit ProxyCommand funktioniert, ohne jedoch fehlschlägt.

verwandte Informationen