原因总述
前提先ping通,ping不通原因本文不讲述。
原因:
- ssh工具存在问题
- ssh 服务没有起来
- ssh端口号不是默认值
- 防火墙拦截
ssh工具存在问题
判断SSH是否已安装,你可以使用以下命令:
-
检查SSH客户端:
ssh -V
如果SSH客户端已安装,你会看到类似于以下的输出:
OpenSSH_8.2p1, OpenSSL 1.1.1f 31 Mar 2020
-
检查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
-
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 服务没有起来
-
检查SSH服务名称:
sudo systemctl list-units --type=service | grep ssh
这将列出所有包含“ssh”的服务名称。确认正确的服务名称。
-
查询服务
sudo systemctl status ssh
-
启动服务
sudo systemctl start ssh
-
重启服务
sudo systemctl restart ssh
-
开机启动服务
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