![如何通过 ssh 连接到局域网中的 ipv6 ubuntu?](https://linux22.com/image/1263044/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%20ssh%20%E8%BF%9E%E6%8E%A5%E5%88%B0%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%AD%E7%9A%84%20ipv6%20ubuntu%EF%BC%9F.png)
我可以通过命令 ping 我的 Ubuntu 盒子:(其中 c2h2ttt 在 /etc/hosts 中列出)
c2h2@c2h2crawler:~/ttt$ ping6 -I eth1 c2h2ttt
PING c2h2ttt(c2h2ttt) from fe80::21b:21ff:fe22:e865 eth1: 56 data bytes
64 bytes from c2h2ttt: icmp_seq=1 ttl=64 time=10.3 ms
64 bytes from c2h2ttt: icmp_seq=2 ttl=64 time=2.06 ms
64 bytes from c2h2ttt: icmp_seq=3 ttl=64 time=1.33 ms
当我尝试时ssh -6 c2h2ttt
它显示:
c2h2@c2h2crawler:~/ttt$ ssh -6 c2h2ttt
ssh: connect to host c2h2ttt port 22: Invalid argument
正确的命令是什么?
在服务器端 /etc/ssh/sshd_config 有:
ListenAddress ::
ListenAddress 0.0.0.0
我能够通过 ipv4 端口 22 ssh 到 c2h2ttt。netstat -lnt | grep :22
并且
root@c2h2think:~# netstat -lnt | grep :22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
使用了 ufw,它允许端口 22 上的任何入站流量
root@c2h2think:~# ufw status
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
以及 iptables 配置:
root@c2h2think:~# ip6tables -L -v -n
Chain INPUT (policy DROP 55 packets, 10758 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all lo * ::/0 ::/0
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all * lo ::/0 ::/0
答案1
尝试为 ssh 客户端指定接口。ping6 实用程序允许您指定接口,但是 ssh 没有用于该目的的开关,因此您必须使用以下语法:
ssh -6 fe80::21b:21ff:fe22:e865%eth1
答案2
链路本地地址不应用于 SSH,它们用于低级协议引导。如果您没有 ISP 提供的前缀可用于您的网络,则从 fd00::/8 生成唯一本地前缀:
答案3
要连接 SSH IPv6,您的计算机上必须有 IPv6 ISP 连接,然后尝试。
root@hostname[~]# ssh -6 2205:f200:40:401::9ab4:8b43
此命令将首先要求确认 SSH 密钥。然后输入Y/Yes
注意:2205:f200:40:401::9ab4:8b43
表示您的 IPv6。这只是 IPv6 的示例,因此请不要忘记替换您的 IPv6。