SSH连接调试小技巧

本篇文章重点为大家讲解一下SSH连接调试小技巧,有需要的小伙伴可以参考一下。

问题一:SSH服务没有运行

SSH连接错误的常见原因是服务未在远程服务器上运行。这可能是由于服务意外关闭或系统重新启动后服务未启动而引起的。

要检查SSH服务是否正在运行,请运行下面命令:

[root@server1 ~]# systemctl status sshd

如何调试SSH连接如何调试SSH连接

解决方法

使用以下命令设置SSH服务开机启动,并启动服务:

[root@server1 ~]# systemctl enable sshd
[root@server1 ~]# systemctl start sshd

问题二:非标准端口上的SSH

调试SSH连接时的第二个常见问题是使用非标准端口。如果SSH在默认端口22以外的其他端口上运行,则除非明确指定运行SSH的端口,否则将不能连接到远程主机。

要查看运行SSH的端口,请使用netstat之类的工具,如下所示:

[root@clean-idea-1 ~]# netstat -tlunp|grep sshd
tcp        0      0 0.0.0.0:28159           0.0.0.0:*               LISTEN      818/sshd            
tcp6       0      0 :::28159                :::*                    LISTEN      818/sshd            

上面的输出显示了SSH服务在哪个端口上运行。在这种情况下,它是端口28159。

解决方法

端口不是默认的22时,连接就需要指定端口了:

[root@server1 ~]# ssh [email protected] -p 28159

问题三:端口被占用

SSH连接错误的另一个原因是其他服务或进程是否也使用与SSH服务相同的端口。例如,SSH的端口号为80,这和http服务的端口冲突了,则类似Apache的服务可能正在使用相同的端口。

要查看其他进程是否正在使用与SSH相同的端口,请使用以下命令检查日志:

[root@server1 ~]# journalctl -t sshd

该命令应返回如下所示的错误,显示端口已被占用。

解决方法

在这可以修改ssh的端口号,打开配置文件将端口修改为其他的,Port 2222

vim /etc/ssh/sshd_config

Port 2222

如何调试SSH连接如何调试SSH连接

问题四:被防火墙阻止

如果尝试了上述所有方法,仍无法建立SSH连接,则可以看看防火墙是否阻止连接?

解决方法

在Cetnos8中,使用fireawlld查看防火墙,并将端口添加允许里面:

[root@server1 ~]# firewall-cmd --list-all
[root@server1 ~]# firewall-cmd --permanent --add-port=2222/tcp
success
[root@server1 ~]# firewall-cmd --reload
success

如何调试SSH连接如何调试SSH连接

问题五:已禁用密码登录

有时,您可以将SSH配置为不接受密码登录,而仅使用公密钥身份验证。如果公钥在服务器上不可用或缺少私钥对,则可能导致不能登录的问题。

解决方法

要检查/etc/ssh/sshd_config配置文件是否允许密码登录,请将ssh配置设置为如下:

[root@server1 ~]# grep PasswordAuthentication /etc/ssh/sshd_config
#PasswordAuthentication yes
PasswordAuthentication yes
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication, then enable this but set PasswordAuthentication

上面的输出显示允许密码登录。

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/7168.html

(0)
晴川运维晴川运维
上一篇 2025年6月9日
下一篇 2025年6月9日

相关推荐

  • 详解MySQL 慢查询

    慢查询日志用来记录在 MySQL 中执行时间超过指定时间的查询语句。通过慢查询日志,可以查找出哪些查询语句的执行效率低,以便进行优化,下面为大家详细讲解一下 MySQL 慢查询。 …

    Linux系统 2025年9月17日
  • Linux常用命令mmount命令具体使用方法

    Linux mmount命令用于挂入MS-DOS文件系统。 mmount为mtools工具指令,可根据[mount参数]中的设置,将磁盘内容挂入到Linux目录中。 语法 mmou…

    Linux系统 2025年6月8日
  • 分享一下git使用小技巧

    Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放…

    Linux系统 2025年6月20日
  • Linux中Postfix反病毒和垃圾邮件工具(十)

    amavisd-new amavisd-new呼叫器是一个连接MTA和内容检测工具(诸如病毒扫描工具和SpamAssassin)的高性能接口程序,使用perl语言写成。它一般通过S…

    Linux系统 2025年6月28日
  • 通过 ansible-bender 构建容器镜像

    ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行…

    Linux系统 2025年9月16日
  • RHEL7 or CentOS7重设系统密码

    我们有时会忘记linux系统的root密码,有的人不会重置密码只能重置系统了,本篇文章重点为大家讲解一下RHEL7 or CentOS7重设系统密码具体方法。 介绍 目的 在 RH…

    Linux系统 2025年6月8日
  • Linux more和less命令

    more和less命令是Linux中查看文本时使用最多的命令,其效率非常的高效而且简便,本篇文章为大家详细讲解一下Linuxmore和less命令。 一、more命令 more功能…

    Linux系统 2025年7月7日
  • 详解Linux下端口映射

    端口映射器可实现端口映射功能,一个主要用途就是可以在局域网的网关上运行本程序,将网关服务器的某个端口映射为局域网中某台机器的某个端口,这样,局域网外部访问网关服务器的8081端口就…

    Linux系统 2025年6月21日
  • 详解su、sudo、sudo su、sudo -i区别

    sudo 与 su 两个命令的最大区别是: sudo 命令需要输入当前用户的密码,su 命令需要输入 root 用户的密码。另外一个区别是其默认行为。sudo 命令只允许使用提升的…

    Linux系统 2025年10月23日
  • Eclipse中修改字符集具体方法

    Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准…

    Linux系统 2025年6月15日

发表回复

登录后才能评论