ssh:连接到主机 myremotehost.com 端口 22:连接被拒绝

bah*_*dso 49 server ssh remote-access port-forwarding

所以我试图让 ssh 在我的服务器上工作。我可以在我的本地网络上使用服务器的本地 ip 地址完全正常连接。当我尝试远程连接(通过我为服务器设置的域名,我知道它有效)时,我收到此连接被拒绝的错误:

ssh: connect to host bahhudson.mine.nu port 22: Connection refused
Run Code Online (Sandbox Code Playgroud)

从我对这个问题所做的研究来看,我的路由器似乎出了点问题。我已经配置了端口转发,但这是我能想到的唯一导致“拒绝连接”错误的想法......我的路由器是 WRT120N,我已经将它配置为基于Portforward.com 的端口转发,这似乎有些过时因为其中一些图像与我的路由器设置不完全相同,但是我尝试了多种设置端口转发的方法,并且我知道端口 80 的转发有效,因为我的服务器具有正常工作的 HTTP 访问...

VPN 访问也以我认为类似的方式被阻止,因此 SSH 端口 22 被阻止的解决方案也可能类似于 VPN 被阻止的解决方案。

有任何想法吗?

谢谢!

San*_*ndy 34

只是为了分享。(可能有不同的配置

就我而言,我发现可能会发生该错误,因为我尚未openssh-server在另一台机器上安装。

我在另一台机器上安装openssh-server后,问题:

ssh: connect to host 192.168.XXX.XXX port 22: Connection refused
Run Code Online (Sandbox Code Playgroud)

解决了。


小智 28

  1. 首先检查openssh-server安装在那个系统中。

  2. 检查 ssh 服务的状态,使 ssh 服务启动。

    sudo service ssh status    
    sudo service ssh start
    
    Run Code Online (Sandbox Code Playgroud)
  3. 检查iptables该系统是否阻止了端口 22。只需允许端口进入iptables然后检查。

    sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT
    
    Run Code Online (Sandbox Code Playgroud)
  4. 否则ssh通过编辑将端口号从 22更改为 2222

    vi etc/ssh/sshd_config    
    /etc/init.d/ssh restart.
    
    Run Code Online (Sandbox Code Playgroud)


ish*_*ish 27

您的 ISP 可能会阻止连接到端口 22(您或您的路由器对此无能为力)。只需将 SSHd 设置为在不同的端口上运行,例如 2222。

在 中/etc/ssh/sshd_config,更改Port 22Port 2222,然后sudo service ssh restart。端口转发 2222(或其他),然后重试。


小智 7

检查 SSH 服务状态,如果停止则启动 SSH 服务:

sudo service ssh status
Run Code Online (Sandbox Code Playgroud)

在我的情况下,SSH 已停止,但在启动服务后:

sudo service ssh start
Run Code Online (Sandbox Code Playgroud)

我可以远程登录Linux。


soh*_*ihi 7

我通过重新安装openssh-server解决了这个问题,如下所示:

sudo apt-get purge openssh-server 
sudo apt-get install openssh-server
Run Code Online (Sandbox Code Playgroud)