在局域网中,如何将ssh连接到 ipv6 ubuntu?

・3 分钟阅读

问题:

我可以通过命令ping我的Ubuntu: ( 在/etc/hosts) 中列出了 c2h2ttt


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



我可以通过端口 22通过ipv4到 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没有 switch,你必须使用这里语法:





ssh -6 fe80::21b:21ff:fe22:e865%eth1




回答 2:

链路本地地址不应该用于 SSH,它们是用于底层协议引导的东西。 如果你没有提供网络上使用的isp前缀,请从 fd00::/8 生成唯一的本地前缀:

http://en.wikipedia.org/wiki/Unique_local_address


回答 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.


讨论
Tony profile image