记一次ssh连接失败的问题

前言

最近在做ci和cd,cd的时候使用ssh连接到服务器的时候,出现问题
ssh read: Connection reset by peer,这是咋回事前几分钟都是ok的,之后就出现这样的问题了

解题思路

  • 检查服务器是否能ping通
ping 192.186.2.33

ping是通的,因为ping是底3层网络协议,这只能证明底3层网络协议是ok的,ssh是应用层协议,问题需要往上找

  • 查日志
    ssh -v连接有问题的服务器,会有详细信息输出到屏幕上,如果是客户端出了问题,在log中会打印,如果log中没有,则是服务端出了问题
ssh -v root@192.186.2.33

图片是网上找的一张,因为当时没有截图
在这里插入图片描述
从以上信息可以看出客户端没有什么问题,问题在服务端

  • 服务端排查日志
service sshd stop
/usr/sbin/sshd -d

-d 是开启debug模式,服务器日志会输出在屏幕上,调试完后记得重新开启ssh服务service sshd start

如果你的日志中有debug1: Connection refused by tcp wrapper之类的话,这说明可能你的客户端ip很可能被服务器禁了,fail2ban或者其他程序把你的客户端ip放到hosts.denyhosts.allow文件中去了

Fail2ban是一项旨在保护您免受暴力攻击的服务,并且可能会将您的身份验证尝试误解为攻击。

Fail2ban监视并动态更改防火墙规则,以禁止表现出可疑行为的IP地址

在hosts.deny中和的hosts.allow文件是TCP包装。作为安全功能,这些文件用于限制可以建立到远程计算机的连接的IP地址或主机名

  • 编辑文件
sudo nano /etc/hosts.deny

空行和以“#”符号开头的行是注释。检查是否可以在文件中找到本地IP或主机名。如果存在,则应将其删除或注释掉,否则它将阻止您建立远程连接,修改完毕后保存退出

客户端使用ssh连接后发现可以正常连接到服务端了
但是当你第二次使用ssh连接服务端的时候你会发现错误又出现了

因为我们需要编辑hosts.allow文件他优于hosts.deny文件中指定的规则,输入以下命令以访问hosts.allow文件:

sudo nano /etc/hosts.allow

添加以下规则

sshd: 客户端ip

保存退出后,重新使用客户端连接多少次都不会有问题了

检查sshd_config文件

如果继续遇到“ ssh_exchange_identification:读取:连接被对等方重置”错误,请检查身份验证日志条目。默认情况下,SSH守护程序会将日志记录信息发送到系统日志。尝试登录失败后,访问/var/log/auth.log文件。要查看最新的日志条目,请输入:

tail -f /var/log/auth.log

输出显示身份验证尝试的结果,有关您的用户帐户,身份验证密钥或密码的信息。

该日志为您提供了可以帮助您在sshd配置文件sshd_config中查找可能出现的问题的信息。对文件所做的任何更改都会影响建立ssh连接的条件,并使远程服务器将客户端视为不兼容的客户端。要访问sshd_config文件,请输入:

sudo nano /etc/ssh/sshd_config

sshd配置文件使您能够更改基本设置,例如用于身份验证的默认TCP端口或SSH密钥对,以及更高级的功能

在这里插入图片描述
例如,MaxStartups变量定义系统在预定义时间段内接受的连接数。如果您的系统在短时间内建立了大量连接,则可能有必要增加此变量的默认值。否则,远程系统可能会拒绝其他尝试的ssh连接。
在这里插入图片描述
当你编辑完后,都需要重新启动sshd服务

service sshd restart

你应该只改你熟悉的的配置,由于配置文件错误,很可能造成服务器无法访问

通过使用ssh命令的-vvv选项,可以启用详细调试输出,以帮助确认SSH连接失败问题。以下是一些步骤和可能的原因: 1. 打开终端或命令提示符,并输入以下命令: ``` ssh -vvv user@hostname ``` 其中,user是您要连接的远程主机的用户名,hostname是远程主机的IP地址或域名。 2. 运行命令后,您将看到大量的调试输出。这些输出将显示SSH连接的详细信息,包括连接过程中的每个步骤和可能的错误。 3. 仔细检查输出,特别关注以下几个方面: - 验证远程主机的IP地址或域名是否正确。 - 确保远程主机正在运行SSH服务器,并且SSH服务已正确配置。 - 检查本地主机和远程主机之间的网络连接是否正常。 - 检查本地主机和远程主机之间的防火墙设置,确保SSH流量被允许通过。 4. 根据输出中的错误消息或警告,尝试解决问题。常见的问题包括: - 远程主机拒绝连接:可能是由于SSH服务未启动、防火墙阻止了连接或者远程主机上的SSH配置错误。 - 密钥验证失败:可能是由于本地或远程主机上的SSH密钥配置错误、权限问题或者密钥文件损坏。 - 网络连接问题:可能是由于网络故障、路由问题或者防火墙阻止了SSH流量。 请注意,以上只是一些常见的问题和解决方法,具体情况可能因系统配置和网络环境而异。如果您仍然无法解决问题,请提供更多详细的错误信息,以便进一步帮助您诊断和解决SSH连接问题
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

死磕音视频

你的打赏是我分享的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值