新安装的 Linux 系统无法 SSH 连接,通常是由于 SSH 服务未安装或未启动。请按以下步骤排查:

  1. 检查 SSH 服务状态
# 检查 SSH 服务是否安装
systemctl status ssh      # Ubuntu/Debian
systemctl status sshd     # CentOS/RHEL/Fedora

# 如果没有安装,先安装
sudo apt install openssh-server   # Debian/Ubuntu
sudo yum install openssh-server   # CentOS/RHEL
sudo dnf install openssh-server   # Fedora
  1. 启动并启用 SSH 服务
# 启动服务
sudo systemctl start ssh      # Ubuntu/Debian
sudo systemctl start sshd     # CentOS/RHEL/Fedora

# 设置开机自启
sudo systemctl enable ssh     # Ubuntu/Debian
sudo systemctl enable sshd    # CentOS/RHEL/Fedora
  1. 检查防火墙设置
# 查看防火墙状态
sudo ufw status              # Ubuntu (如果使用UFW)
sudo firewall-cmd --state    # CentOS/RHEL/Fedora (firewalld)
sudo iptables -L             # 检查iptables规则

# 开放22端口
sudo ufw allow 22            # Ubuntu
sudo firewall-cmd --add-port=22/tcp --permanent  # CentOS/RHEL
sudo firewall-cmd --reload
  1. 检查 SSH 配置
# 检查配置文件
sudo nano /etc/ssh/sshd_config

# 确保以下设置正确:
# PermitRootLogin yes(如果要以root登录)
# PasswordAuthentication yes(如果要用密码登录)
# Port 22(默认端口)

# 修改后重启服务
sudo systemctl restart ssh/sshd
  1. 验证 SSH 端口监听
# 检查SSH是否在监听22端口
sudo netstat -tlnp | grep :22
ss -tlnp | grep :22
  1. 云服务器特殊情况

如果你使用的是云服务器(AWS/Azure/阿里云/腾讯云等):

  1. 检查安全组规则 – 确保22端口对公网开放
  2. 检查云防火墙 – 控制台可能有额外的防火墙设置
  3. 本地网络测试
# 在同一网络内先用局域网IP测试
ifconfig 或 ip addr      # 查看本机IP

# 从另一台机器测试连接
ssh username@服务器IP
  1. 排错命令汇总
# 查看SSH服务日志
sudo journalctl -u ssh -f
sudo tail -f /var/log/auth.log     # Ubuntu
sudo tail -f /var/log/secure       # CentOS/RHEL
  1. 常见问题解决

· 权限问题:确保用户家目录权限正确(chmod 700 ~/.ssh)
· SELinux问题(CentOS/RHEL):

  sudo setsebool -P sshd_full_access on
  sudo restorecon -Rv /etc/ssh

· 密码认证被禁用:修改sshd_config中PasswordAuthentication yes

请告诉我:

  1. 你使用的是哪个 Linux 发行版?
  2. 是在物理机、虚拟机还是云服务器上?
  3. 执行上述命令时的具体输出?

这样我能提供更针对性的帮助。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注