更新:我刚刚发现 ssh 命令选项(而不是您只需发送命令的交互式 shell)有些工作。
例子:
ssh pi@domainname ls
工作并打印内容,但是
ssh pi@domainname ls && echo hello
只打印 ls 但不打印它只是卡在那里的回声
我有一个奇怪的问题。当我通过 ssh 在本地网络中登录我的树莓派时,它工作正常。但是当我尝试从外部访问它时,它会显示密码弹出,并且如果输入了最后一次登录的登录消息。但外壳不会出现。建立连接大约需要 10 到 30 分钟,然后我最多可以输入 4 个命令,然后再次冻结。
现在我认为这将是树莓派的故障,但我的 NAS 也是如此,所以我猜是路由器?我已经将路由器设置为将端口转发到 ssh 端口 22。它是 Speedport smart 3。
我不知道是什么可能导致路由器中的 ssh 出现问题,但它多年来一直运行良好,大约一个月前才开始。
提前致谢
编辑:
因为显然我的设置不清楚:
路由器 -> 交换机 -> 通过有线局域网连接的多个设备(Windows Pc、树莓派、NAS)
这些设备都没有与 wifi 连接,pi 和 NAS 没有 wifi 适配器。路由器有一个端口重定向到覆盆子和 NAS 的端口 1234/5 到 22
在本地网络中 ssh 工作得很好。从互联网访问时,它不会,
但是:ssh 密码信息和登录信息只有在 ssh 很长一段时间没有显示 shell 之后才能正常工作。
我的猜测是路由器以某种方式不允许通过 ssh 协议的某些部分。
我现在的解决方法是在 pi 上建立一个网站,以便做我主要需要的事情。
我相信我们对您的设置知之甚少,无法回答您的问题。但是,一些一般准则:
首先,断开测试不需要的任何网络组件,并使用可靠的电缆连接而不是 WiFi。也就是说,完全关闭路由器中的 WiFi。然后使用已知良好的电缆将您的 RasPI 直接连接到您的路由器,并断开任何其他设备与您的路由器的连接。
在您的 RasPI 配置中,为 RasPI 分配一个静态 IP 地址(以及静态名称服务器、网关等),然后关闭路由器中的 DHCP。仔细检查路由器中的端口转发是否指向正确的 IP 地址(您手动分配给 RasPI 的那个)。
然后从外部重复 SSH 测试。如果现在有效,您可以尝试将上述步骤一一还原。如果还是不行,可以尝试向朋友借个路由器几个小时(你可以为他做一个美味的比萨,不是吗?),然后重新测试。如果它与其他路由器一起工作,您可能已经确定了罪魁祸首。
但是,即使在成功的情况下,您也应该进行一段时间的进一步测试,至少如果您通常通过 WiFi 将 RasPI 连接到路由器。我可以想象(尽管不太可能)邻居的设备使用与您的路由器相同的 WiFi 通道并干扰通信。在那种情况下,如果您在家时连接到 RasPI,我无法解释为什么它会起作用,但正如我上面所说,我们对您的设置知之甚少。例如,如果您使用笔记本电脑通过 WiFi 直接连接到 RasPI,则该笔记本电脑可能会使用路由器以外的其他频道,可能会提供更强的信号,或者可能会有更好的接收效果。