So lösen Sie ipv6 ssh auf Ubuntu 16.4 mit möglicher Mehrdeutigkeit der Schnittstelle

506
jws

Ich habe eine neue Ubuntu 16.04-Installation. Ich möchte per IPV6 in ein MacBook Pro ssh.

Ich kann den Mac von Ubuntu aus anpingen, aber ich muss -I angeben.

$ ping6 -c 1 -I enp0s25 fe80::14fc:cec5:c174:d88 PING fe80::14fc:cec5:c174:d88(fe80::14fc:cec5:c174:d88) from fe80::ba94:3d5e:9929:4c6e enp0s25: 56 data bytes 64 bytes from fe80::14fc:cec5:c174:d88: icmp_seq=1 ttl=64 time=0.378 ms 

gegen

$ ping6 -c 1 fe80::14fc:cec5:c174:d88 connect: Invalid argument 

Mein Ubuntu hat nur einen Adapter und eine Schnittstelle.

$ ifconfig enp0s25 Link encap:Ethernet HWaddr b8:ae:ed:77:91:fa  ... lo Link encap:Local Loopback  ... 

Ich kann SSH in den Mac von einem Windows-PC, der PuTTY (Plink) verwendet, ssh in den Mac. Alle drei Maschinen (MacBook, Windows, Ubuntu) befinden sich auf demselben Netzwerkswitch.

# bash on Windows $ ssh test@fe80::14fc:cec5:c174:d88 Last login: Sat Nov 17 13:16:15 2018 from fe80::e119:5811:40e5:becf%en8 jws-mac:~ test$ 

Auf Ubuntu möchte ich mit diesem Befehl arbeiten:

$ ssh -6 test@fe80::14fc:cec5:c174:d88 ssh: connect to host fe80::14fc:cec5:c174:d88 port 22: Invalid argument 

Es scheint, als wäre es ein ähnliches Ergebnis wie ein Ping ohne -I-Schalter. Ich möchte -b nicht verwenden, da ich git mit IPV6-ssh-URL verwenden möchte.

Hinweise geschätzt!

0

1 Antwort auf die Frage

0
jws

Da es sich um eine linklokale IPv6-Adresse handelt, muss die ID der lokalen Schnittstelle mit der Remote- Adresse angegeben werden.

$ ifconfig enp0s25 Link encap:Ethernet HWaddr b8:ae:ed:77:91:fa ...  $ ssh -6 test@fe80::14fc:cec5:c174:d88%enp0s25 

oder

ssh -6 benutzer @ entfernte-ipv6-adresse % lokaler schnittstellenname

Hinweis enp0s25hängt von der Maschine ab und wird von ifconfig bereitgestellt und in ssh eingesteckt.

Hier ist ein Beispiel für eine ssh-URL für Tools wie git, wobei Benutzer gitund Unterpfad angenommen werden repos/test.git:

ssh://git@[fe80::14fc:cec5:c174:d88%25enp0s25]/repos/test.git 

oder

ssh: // user @ [ remote-ipv6-address % 25 * local-interface *] / unterpfad

Beachten Sie, dass das%, das die Adresse von der Schnittstelle trennt, als% 25 URL-kodiert sein muss.