Как да поправим: Връзката е отказана от порт 22 Debian/Ubuntu

How Fix Connection Refused Port 22 Debian Ubuntu



SSH осигурява сигурен начин за достъп и управление на Linux сървъри. Понякога, докато се свързват със SSH сървъри, потребителите често срещат грешка при отказ на връзка от порт 22. Това се случва поради няколко причини, като например SSH услугата не работи, портът е блокиран от защитната стена или сървърът използва различен порт. Това може да се случи и поради проблем с IP конфликта. В тази статия ще обсъдим някои от решенията, които трябва да опитате, за да поправите грешката.

Забележка: Командите, обсъдени тук, са тествани на 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. В тази статия сме описали няколко начина, които със сигурност ще ви помогнат при решаването на грешката при отказа на връзката.