我新安装了 Ubuntu 16.04。我想通过 IPV6 ssh 进入 MacBook Pro。
我可以从 Ubuntu ping Mac,但它要求我指定 -I。
$ 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
相对
$ ping6 -c 1 fe80::14fc:cec5:c174:d88
connect: Invalid argument
我的 Ubuntu 只有一个适配器和接口。
$ ifconfig
enp0s25 Link encap:Ethernet HWaddr b8:ae:ed:77:91:fa
...
lo Link encap:Local Loopback
...
我可以从使用 PuTTY (plink) 的 Windows PC 上 ssh 到 Mac。这三台机器 (MacBook、Windows、Ubuntu) 都在同一台网络交换机上。
# 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$
在 Ubuntu 上,这是我想要使用的命令:
$ ssh -6 test@fe80::14fc:cec5:c174:d88
ssh: connect to host fe80::14fc:cec5:c174:d88 port 22: Invalid argument
看起来它的结果与不使用 -I 开关的 ping 类似。我不想使用 -b 开关,因为最终我想使用带有 IPV6 ssh url 的 git。
请多多指点!
答案1
由于这是一个链路本地 IPv6 地址,当地的接口标识符必须指定偏僻的地址。
$ ifconfig
enp0s25 Link encap:Ethernet HWaddr b8:ae:ed:77:91:fa
...
$ ssh -6 test@fe80::14fc:cec5:c174:d88%enp0s25
或者
SSH-6用户@远程 IPv6 地址%本地接口名称
注意enp0s25
取决于机器并由 ifconfig 提供并插入 ssh。
这里是一个 ssh URL 的例子,用于像 git 这样的工具,假设用户git
和子路径repos/test.git
:
ssh://git@[fe80::14fc:cec5:c174:d88%25enp0s25]/repos/test.git
或者
ssh://用户@[远程 IPv6 地址%25*本地接口*]/子路径
请注意,将地址与接口分开的%必须进行 URL 编码为%25。