![通过 IPv6 进行 SSH 时出现“权限被拒绝”错误](https://linux22.com/image/1275755/%E9%80%9A%E8%BF%87%20IPv6%20%E8%BF%9B%E8%A1%8C%20SSH%20%E6%97%B6%E5%87%BA%E7%8E%B0%E2%80%9C%E6%9D%83%E9%99%90%E8%A2%AB%E6%8B%92%E7%BB%9D%E2%80%9D%E9%94%99%E8%AF%AF.png)
我有一台可以通过 IPv4 地址通过 SSH 连接的服务器。现在我想通过 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
一些额外的信息:
- 我的笔记本电脑运行的是 Arch Linux,而我的服务器是 Ubuntu Server 10.10
- 服务器上的 sshd -V 显示
OpenSSH_5.5p1 Debian-4ubuntu5, OpenSSL 0.9.8o 01 Jun 2010
- 我的笔记本电脑上的 ssh -V 显示
OpenSSH_5.8p2, OpenSSL 1.0.0d 8 Feb 2011
- 我的笔记本电脑上的 ssh -6 ::1 正常。
- ping6 PUBLIC_V6_IP 正常。
- 服务器上的 ssh -6 ::1 -p 311 正常。
- 服务器上的 ssh -6 PUBLIC_V6_IP -p 311 也可以。
问:有人知道发生了什么事吗?
答案1
可能的原因有:
本地防火墙 (
ip6tables
)网络上的外部防火墙(根据一些来源,ICMPv6“管理禁止”错误消息被 Linux 解释为 EACCESS)
AppArmor、SELinux、Smack(尽管 Arch 上默认没有启用它们)
您可以尝试以下方法:
重置 ip6tables 规则
使用其他程序连接到服务器 (
socat stdio tcp:[2604:....]:311
),查看它们是否返回相同的消息;使用相同和不同的端口进行测试ping6
,,traceroute6
并查看是否有任何跳转返回“管理禁止”或任何其他错误