SSH over IPv6 出现“权限被拒绝”错误

Lim*_*eng 6 ssh ipv6

我有一台可以通过 SSH 连接到 IPv4 地址的服务器。现在我想通过 IPv6 进行 SSH。

我确定我的服务器分配了一个有效的 IPv6 地址,并且我已经将 sshd 配置为侦听 v6 地址(我将其设置为[::]:311),但是当我运行时(在我的笔记本电脑上)

ssh -v -6 -p 311 PUBLIC_V6_IP -l same_user_as_v4 -i ~/.ssh/id_rsa

我得到以下输出:

OpenSSH_5.8p2, OpenSSL 1.0.0d 8 Feb 2011
debug1: Reading configuration data /home/winus/.ssh/config
debug1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to PUBLIC_V6_IP [PUBLIC_V6_IP] port 311.
debug1: connect to address PUBLIC_V6_IP port 311: Permission denied
ssh: connect to host PUBLIC_V6_IP port 311: Permission denied
Run Code Online (Sandbox Code Playgroud)

一些额外的信息:

  1. 我的笔记本电脑运行的是 Arch Linux,而我的服务器是 Ubuntu Server 10.10
  2. 服务器上的 sshd -V 显示 OpenSSH_5.5p1 Debian-4ubuntu5, OpenSSL 0.9.8o 01 Jun 2010
  3. ssh -V 在我的笔记本电脑上显示 OpenSSH_5.8p2, OpenSSL 1.0.0d 8 Feb 2011
  4. 我的笔记本电脑上的 ssh -6 ::1 没问题。
  5. ping6 PUBLIC_V6_IP 正常。
  6. 服务器上的 ssh -6 ::1 -p 311 没问题。
  7. 服务器上的 ssh -6 PUBLIC_V6_IP -p 311 也可以。

问题:有人知道这是怎么回事吗?

use*_*686 2

可能的原因可能是:

  • 本地防火墙 ( ip6tables)

  • 网络上的外部防火墙(根据某些来源,ICMPv6“管理禁止”错误消息被 Linux 解释为 EACCESS)

  • AppArmor、SELinux、Smack(尽管在 Arch 上默认情况下它们都没有打开)

你可以尝试的事情:

  • 重置 ip6tables 规则

  • 使用其他程序连接到服务器 ( socat stdio tcp:[2604:....]:311) 并查看它们是否返回相同的消息;使用相同和不同的端口进行测试

  • ping6traceroute6、 并查看是否有任何跃点返回“管理禁止”或任何其他错误