Забележка: Командите, обсъдени тук, са тествани на Ubuntu 20.04 LTS. Същите команди са валидни и за системата Debian.
Поправете грешка при отказ на връзката
Това е грешката при отказ на връзка, която може да срещнете при свързване към отдалечена система през SSH.
Следвайте стъпка по стъпка решенията по -долу, за да разрешите грешката при отказа на връзката.
Уверете се, че OpenSSH е инсталиран
Една от причините да получите грешка при отказ на връзка е, че сървърът OpenSSH не е инсталиран на целевия сървър.
Първо, ще трябва да се уверите, че сървърът OpenSSH е инсталиран в системата, до която се опитвате да получите достъп чрез SSH. За да проверите дали OpenSSH е инсталиран или не, издайте следната команда в терминала на целевия сървър:
$sudoподходящ списък-инсталиран | захващанеopenssh-сървър
Тази команда основно филтрира термина openssh-сървър от списъка с инсталирани пакети. Ако получите следния подобен изход, това показва, че сървърът на OpenSSH е инсталиран. От друга страна, ако не получавате изход, това означава, че OpenSSH липсва на целевия сървър.
В случай, че не е инсталиран на целевия сървър, можете да го инсталирате, като използвате следната команда като sudo:
$sudoподходящИнсталирайopenssh-сървърСлед това въведете парола за sudo и когато бъдете помолени за потвърждение, натиснете „y“. След като бъде инсталиран, потвърдете го, като използвате същата команда
$sudoподходящ списък-инсталиран | захващанеopenssh-сървърПроверете SSH услугата
Услугата OpenSSH работи във фонов режим и слуша входящите връзки. Спираната услуга OpenSSH може да бъде една от причините да получавате грешка при отказ на връзка.
Следователно е необходимо да проверите дали услугата OpenSSH работи или не, като използвате следната команда в терминала:
$sudoобслужванеsshсъстояниеАко видите следния изход, това означава, че услугата е активна и работи във фонов режим.
От друга страна, ако получите неактивен (мъртъв), това означава, че услугата не работи . Можете да стартирате услугата OpenSSH, като използвате следната команда като sudo в терминала:
$sudoобслужванеsshзапочнетеЗа да рестартирате услугата, използвайте следната команда:
$sudoобслужванеsshрестартирамПроверете порта за слушане на SSH сървър
Друга причина за получаване на грешка при отказ на връзка е, че се опитвате да се свържете с грешен порт. Например, ако сървърът е конфигуриран да слуша на порт 2244 и се опитвате да се свържете с неговия порт 22 по подразбиране, тогава в този случай ще получите грешка при отказ на връзка.
Преди да се опитате да се свържете, трябва да проверите порта за слушане на SSH сървъра. Ако това е портът по подразбиране (22), тогава можете да го свържете, като използвате следната команда:
$ssh [потребителско име]@[IP на отдалечен сървър илииме на хост]Ако това е някакъв порт, различен от порта по подразбиране, ще трябва да се свържете към SSH сървъра, като използвате този порт:
$ssh -стр [номер на пристанище] [потребителско име]@[IP адрес]За да проверите на кой порт сървърът OpenSSH слуша; използвайте следната команда в терминала:
$sudo netstat -ltnp | захващанеsshdЩе получите изхода, подобен на следния:
В третата колона можете да видите, че портът за слушане на сървъра е 2244. Ако случаят е такъв, ще трябва да се свържете към SSH сървъра, използвайки този порт.
$ssh -стр [2244] [потребителско име]@[IP адрес]Разрешете SSH във защитната стена
Защитната стена, блокираща SSH порта, може да бъде друга основна причина за грешката при отказа на връзката. Ако защитна стена работи на SSH сървъра, ще трябва да разрешите SSH порта в него, като използвате следната команда. Сменете пристанище по номера на порта, който SSH сървърът слуша:
$sudoufw позволяват порт/tcpНапример, ако SSH сървърът слуша порт 2244, тогава можете да го разрешите в защитната стена като:
$sudoufw позволяват2244/tcp
Презаредете защитната стена, като използвате следната команда:
$sudoufw презарежданеЗа да потвърдите дали правилата са добавени, проверете състоянието на защитната стена, като използвате следната команда в терминала:
$sudoстатус на ufwСледният изход показва, че порт 2244 е разрешен в защитната стена.
Разрешаване на конфликт на дублирани IP адреси
Грешката при отказ на връзка може да възникне и поради конфликт на дублирани IP адреси. Така че, уверете се, че системата няма дублиран IP адрес.
Инсталирайте помощната програма arping на вашата система, като използвате следната команда:
$sudoподходящИнсталирайarpingСлед това пинг IP адреса на SSH сървъра.
$пинг <IP адрес>В изхода, ако видите отговора от повече от един MAC адрес, той показва, че в системата работи дублиран IP. Ако случаят е такъв, променете IP адреса на SSH сървъра и опитайте да се свържете отново с новия IP адрес.
Ето как да поправите грешката при отказа на връзката от порт 22 в системите на Linux. В тази статия сме описали няколко начина, които със сигурност ще ви помогнат при решаването на грешката при отказа на връзката.