ssh连接失败问题排查

原因总述

前提先ping通,ping不通原因本文不讲述。

原因:

  1. ssh工具存在问题
  2. ssh 服务没有起来
  3. ssh端口号不是默认值
  4. 防火墙拦截

ssh工具存在问题


判断SSH是否已安装,你可以使用以下命令:

  1. 检查SSH客户端:

    ssh -V

    如果SSH客户端已安装,你会看到类似于以下的输出:

    OpenSSH_8.2p1, OpenSSL 1.1.1f 31 Mar 2020

  2. 检查SSH服务器:

    sudo systemctl status ssh

    如果SSH服务器已安装并运行,你会看到类似于以下的输出:

    ● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2024-09-04 08:00:00 UTC; 40min ago

  3. dpkg查询

    dpkg -l | grep openssh-server

    如果SSH服务器已安装,你会看到类似于以下的输出:

    ii openssh-server 1:8.2p1-4ubuntu0.3 amd64 secure shell (SSH) server, for secure access from remote machines


ssh服务查看

sudo systemctl status ssh

如果已经安装,但是显示 ssh.service not found,则大概率是安装的ssh服务存在问题,需要重新安装。

如果SSH服务器已安装并正常运行,你会看到类似于以下的输出:

● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2024-09-04 08:00:00 UTC; 40min ago


ssh安装

命令如下:

#卸载
sudo apt remove --purge openssh-server;

#安装
sudo apt update; sudo apt install -y openssh-server `

ssh 服务没有起来

  1. 检查SSH服务名称:

    sudo systemctl list-units --type=service | grep ssh

    这将列出所有包含“ssh”的服务名称。确认正确的服务名称。

  2. 查询服务

    sudo systemctl status ssh

  3. 启动服务

    sudo systemctl start ssh

  4. 重启服务

    sudo systemctl restart ssh

  5. 开机启动服务

    sudo systemctl enable ssh

ssh端口号查询

要查看SSH服务使用的端口号,可以使用以下命令:

sudo lsof -i -n -P | grep ssh 

这将列出所有与SSH相关的网络连接及其端口号。如果SSH服务正在运行,你应该能看到类似于以下的输出:

sshd    1234    root    3u  IPv4  0x12345678  0t0  TCP *:22 (LISTEN) 

其中22是SSH服务的默认端口号。

防火墙拦截

至于防火墙检测和拦截的端口,可以使用iptables查看防火墙规则:

对于iptables:

sudo iptables -L -n -v

允许22端口通过防火墙

sudo ufw allow 22

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐