本文将介绍一些快速诊断SSH连接的方法和技巧,包括无法连接SSH、认证错误等。问题一:SSH服务没有运行ASSH连接错误的常见原因是该服务未在远程服务器上运行。这可能是由于服务意外关闭或系统重启后服务未启动引起的。查看SSH服务是否运行,运行如下命令:[root@server1~]#systemctlstatussshdHowtodebugSSHconnections~]#systemctlenablesshd[root@server1~]#systemctlstartsshd问题二:SSHon非标准端口调试SSH连接时的第二个常见问题是使用非标准端口。如果SSH在默认端口22以外的端口上运行,除非您明确指定运行SSH的端口,否则您将无法连接到远程主机。要查看SSH在哪个端口上运行,请使用类似netstat的工具,如下所示:[root@clean-idea-1~]#netstat-tlunp|grepsshdtcp000.0.0.0:281590.0.0.0:*LISTEN818/sshdtcp600:::28159:::*LISTEN818/sshd如何调试SSH连接如何调试SSH连接以上输出显示了SSH服务在哪个端口上运行。本例为28159端口。解决方法当端口不是默认的22时,连接需要指定端口:[root@server1~]#sshroot@192.168.43.131-p28159问题3:端口被占用另SSH连接错误的原因是其他服务或进程是否也使用与SSH服务相同的端口。例如SSH的端口号是80,与http服务的端口冲突,Apache之类的服务可能使用了同一个端口。要查看其他进程是否使用与SSH相同的端口,请使用以下命令检查日志:[root@server1~]#journalctl-tsshd此命令应返回如下所示的错误,表明该端口已在使用。如何调试SSH连接如何调试SSH连接解决方法这里可以修改ssh的端口号,打开配置文件把端口改成别的,Port2222vim/etc/ssh/sshd_configPort2222如何调试SSH连接HowtodebugSSHconnection问题4:被防火墙拦截如果您尝试了以上所有方法仍然无法建立SSH连接,您可以查看是否有防火墙拦截了连接?解决方法在Cetnos8中,使用fireawlld查看防火墙,添加允许的端口:[root@server1~]#firewall-cmd--list-all[root@server1~]#firewall-cmd--permanent--add-port=2222/tcpsuccess[root@server1~]#firewall-cmd--reloadsuccess如何调试SSH连接如何调试SSH连接密钥认证。如果公钥在服务器上不可用或者私钥对丢失,这可能会导致无法登录的问题。解决方案要检查/etc/ssh/sshd_config配置文件是否允许密码登录,设置ssh配置如下:[root@server1~]#grepPasswordAuthentication/etc/ssh/sshd_configPasswordAuthenticationyesPasswordAuthenticationyesPasswordAuthentication。根据您的PAM配置,PAM身份验证,然后启用此但设置PasswordAuthentication上面的输出显示允许密码登录。总结本文讨论了SSH连接错误的主要原因以及如何修复它们。
