ssh 到远程服务器时出现错误“无法分配请求的地址”

ssh 到远程服务器时出现错误“无法分配请求的地址”

在 ubuntu 14.04 上我安装了 openssh,更改了 ssh 端口。我可以在局域网内登录,没有任何问题,但无法从外部访问。

我还:允许它通过防火墙并在我的 linksys 路由器上设置端口转发

每当我登录时,我都会收到错误(我已替换 # 而不是数字):

ssh: connect to host #.#.#.# port #: Can't assign requested address

我还能检查什么,可能出了什么问题?请帮忙。

答案1

对我来说,它有助于使用针对 ssh 的密钥来使用 IPv4 而不是 IPv6

ssh -4 .... 

答案2

可能有不同的原因:

首先,我假设您的 ssh 服务器正在侦听正确的 IP/接口,无论如何,确保它的简单方法是在 ssh 服务器中键入:

netstat -putan |grep ssh

或取决于您的操作系统类型/版本:

ss -putan |grep ssh

如果在正确的接口中侦听,还请检查您的 SSH 服务器是否在 tcp、tcp6 或两者中侦听。

有时,如果您同时侦听 tcp 和 tcp6(这意味着您将侦听 IPv4 和 IPv6),可能会给您带来问题...您只能通过编辑 ssh 配置文件来侦听 IPv4/etc/ssh/sshd_config并添加/编辑该值:

AddressFamily inet

进行此更改后,您必须重新启动 SSH 服务器。

即使在这种情况下您无法通过 SSH 访问,我也建议 ping 目标 IP。如果没有收到响应,请检查双方的 IP/掩码以及路由表。可以通过以下命令检查路由表:

ip route

答案3

您可以将此设置为客户端选项以停止使用 IPv6。

~/.ssh/config

Host *
    AddressFamily inet

相关内容