对服务器和 Raspberry Pi 之间的 SSH 反向隧道进行故障排除

对服务器和 Raspberry Pi 之间的 SSH 反向隧道进行故障排除

我有两个系统:互联网上的 Ubuntu 20.04 服务器和本地 LAN 中的 Raspberry Pi 2B (Ubuntu 18.04)(位于 NAT 路由器后面)。我正在打开从 Raspberry Pi 到服务器的反向隧道,如下所示:

ssh -f -N -R 13333:127.0.0.1:22 server

配置文件如下所示:

Host server
  Hostname <public IP>
  User serveruser
  IdentityFile /home/piuser/.ssh/serverkey

然后在服务器上我运行以下命令:

ssh -p13333 -i ~/.ssh/pikey [email protected]

对于 pikey,在 Raspberry 上执行一个命令(在 authorized_keys 文件中设置)。

昨天我尝试了几次这个设置,但今天(大约 24 小时后)我无法再使用隧道了。ss向我显示了开放的端口,我能够在服务器上执行该命令,但没有响应 - 命令只是“挂起”。

然后,我杀死了隧道并重新建立了它,没有任何问题。为了进一步解决问题,我在服务器发送的命令中添加了 -vvv :

ssh -vvv -p13333 -i ~/.ssh/pikey [email protected]

这向我展示了以下点的连接卡住:

OpenSSH_8.2p1 Ubuntu-4ubuntu0.2, OpenSSL 1.1.1f  31 Mar 2020
debug1: Reading configuration data /home/serveruser/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug2: resolve_canonicalize: hostname 127.0.0.1 is address
debug2: ssh_connect_direct
debug1: Connecting to 127.0.0.1 [127.0.0.1] port 13333.
debug1: Connection established.
debug1: identity file /home/serveruser/.ssh/pikey type 0
debug1: identity file /home/serveruser/.ssh/pikey-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.2

这次,在Raspberry Pi的网站上我看到:

$ Warning: remote port forwarding failed for listen port

所以我的最后一次尝试是重新启动 Raspberry,瞧,在再次建立隧道后,它按预期工作了。

最后,我的问题是:我如何确定出了什么问题?我在国外时依赖这种连接,所以我真的需要弄清楚出了什么问题以及如何解决这个问题...
顺便说一句,我在谷歌上搜索了一下,但没有一个建议/解决方案适合我的情况,因为我能够一开始就建立了连接,但一些小问题使其进入了一种奇怪的状态。

如果您需要更多信息,请告诉我:)

答案1

看起来您可能需要启用 keepalive 功能。 .ssh/config 中类似以下内容可能会起作用:

Host *
    ServerAliveInterval 300
    ServerAliveCountMax 2

答案2

Warning: remote port forwarding failed for listen port当指定端口上已经有某些东西正在侦听时,您将会收到消息。您可以使用sudo netstat -lnp | grep 13333是否再次发生这种情况来检查该端口是否仍在侦听。 netstat 上的 p 标志应该显示正在该端口上侦听的任何内容的 pid。

如果长时间没有任何东西使用,您的 ssh 隧道很可能会超时。您可以尝试使用autossh作为实用程序来监视隧道并在隧道失败时重新建立它。这篇超级用户帖子展示了如何执行此操作。

相关内容