HCRM博客

如何解决CentOS SSH连接问题?常见解决方法汇总

一、可能原因及解决方法

1、SSH 服务未启动

检查方法:使用systemctl status sshd 命令查看 SSH 服务状态,若显示 “inactive” 或 “dead”,则表示服务未运行。

如何解决CentOS SSH连接问题?常见解决方法汇总-图1
(图片来源网络,侵权删除)

解决方法:执行systemctl start sshd 命令启动 SSH 服务。

2、防火墙阻止 SSH 连接

检查方法:对于 CentOS 7 及更早版本,使用iptables L | grep ssh 命令;对于 CentOS 8 及更新版本,使用firewallcmd listports 命令查看是否允许 SSH 连接

解决方法:如果端口未开放,对于 CentOS 7 及更早版本,使用iptables A INPUT p tcp dport 22 j ACCEPT 命令添加规则;对于 CentOS 8 及更新版本,使用firewallcmd zone=public addservice=ssh permanent 命令添加规则,然后执行firewallcmd reload 重新加载防火墙配置。

3、SSH 配置错误

检查方法:查看/etc/ssh/sshd_config 文件,检查以下关键配置项是否正确:

如何解决CentOS SSH连接问题?常见解决方法汇总-图2
(图片来源网络,侵权删除)

Port:默认为 22,若被更改需确认新端口号。

PermitRootLogin:是否允许 root 用户通过 SSH 登录,默认为 yes。

PasswordAuthentication:是否允许使用密码进行 SSH 登录,默认为 yes。

PubkeyAuthentication:是否允许使用公钥进行 SSH 登录,默认为 yes。

解决方法:根据需要修改配置文件,保存后重启 SSH 服务使配置生效,若要修改端口号为 2222,在配置文件中找到 “#Port 22” 并将其改为 “Port 2222”,保存后执行systemctl restart sshd

4、用户名或密码错误

如何解决CentOS SSH连接问题?常见解决方法汇总-图3
(图片来源网络,侵权删除)

检查方法:确保输入的用户名和密码正确无误。

解决方法:仔细核对用户名和密码,注意大小写及特殊字符的正确性。

5、被阻止的 IP 地址

检查方法:查看/etc/hosts.deny/etc/hosts.allow 文件中是否有限制 SSH 访问的 IP 地址相关配置。

解决方法:如果有限制,根据实际情况编辑这两个文件,删除或修改相关的限制规则。

6、网络连接问题

检查方法:使用ping <IP地址> 命令测试与目标服务器的网络连通性。

解决方法:若无法 ping 通,检查网络设备是否正常工作,如路由器、交换机等;检查网络配置是否正确,包括 IP 地址、子网掩码、网关等;如果是虚拟机环境,还需检查虚拟机网络设置是否正确。

7、SELinux 限制

检查方法:使用getenforce 命令查看 SELinux 的状态,若显示 “Enforcing”,则表示 SELinux 处于强制模式,可能会限制 SSH 连接。

解决方法:可以临时关闭 SELinux,执行setenforce 0 命令;若要永久关闭,编辑/etc/selinux/config 文件,将 “SELINUX=enforcing” 改为 “SELINUX=disabled”,保存后重启系统。

8、OpenSSH 相关软件包问题

检查方法:使用rpm qa | grep opensshyum list installed | grep openssh 命令查看 OpenSSH 相关软件包是否安装及版本信息。

解决方法:如果未安装 opensshserver,执行yum install opensshserver 进行安装;如果已安装但版本过低或存在问题,可尝试升级或重新安装 OpenSSH。

9、SSH 密钥问题

检查方法:如果使用密钥认证方式登录,检查客户端是否已正确添加服务器的公钥,以及本地的私钥文件是否可访问且权限正确。

解决方法:若公钥未添加,将服务器的公钥复制到客户端的~/.ssh/known_hosts 文件中;若私钥文件权限不正确,使用chmod 600 ~/.ssh/id_rsa 命令修改权限。

二、FAQs

1、Q: CentOS 中如何查看 SSH 服务的监听端口?

A: 可以使用netstat an | grep sshss antp | grep ssh 命令查看 SSH 服务的监听端口,SSH 服务正常启动且配置正确,通常会显示类似 “tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 12345/sshd” 的信息,表明 SSH 服务正在监听 22 端口。

2、Q: 修改 SSH 配置文件后是否需要重启系统?

A: 不需要重启系统,只需重启 SSH 服务即可使配置生效,可以使用systemctl restart sshd 命令重启 SSH 服务。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/23605.html

分享:
扫描分享到社交APP
上一篇
下一篇