我在 ubuntu 工作站上无法连接到 NAT 后面的 SSH 服务器。我安装了 openssh 包(客户端和服务器)并通过 NAT 转发了端口 22,并尝试进行远程连接:
ssh [email protected]
但是,连接被拒绝。我运行了 iptables -L,结果显示:
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
之后,我为端口 22 上的所有入站连接添加了一个条目
sudo iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
问题尚未解决。阅读有关 SSH 端口转发的内容后,我注意到必须添加以下行
GatewayPorts yes
到/etc/ssh/sshd_config在服务器框上。我已重新启动服务,但仍然无法连接。我是否遗漏了什么?
答案1
当前的信息量不足以诊断您的问题。您可以增加服务器和客户端上的连接的详细程度,此输出可能包含解决问题的关键信息。
在您的服务器上,按如下方式重新启动 ssh:
sudo service ssh stop
sudo /usr/sbin/sshd -d
这将启动服务器调试模式,这意味着它不会进入后台并且会向标准错误产生错误消息。
在服务器端,你可以使用以下命令开始连接尝试
ssh me@remote_server -vvv
当您获得此输出时,请在此处发布相关内容,然后很多人将能够帮助您(不仅仅是我)。
答案2
我设法修复了它。显然,重新安装 openssh-server 就可以解决问题。强烈建议完全删除以前的安装。运行以下命令:
sudo apt-get remove --purge openssh-server
sudo apt-get install openssh-server