Putty сетевая ошибка соединение разорвано локальным компьютером

25 мая, 2017 11:40 дп
85 669 views
| Комментариев нет

Linux, SSH

В первой статье этой серии вы узнали о том, как и в каких ситуациях вы можете попробовать исправить ошибки SSH. Остальные статьи расскажут, как определить и устранить ошибки:

  • Ошибки протокола: в этой статье вы узнаете, что делать, если сбрасываются клиентские соединения, клиент жалуется на шифрование или возникают проблемы с неизвестным или измененным удаленным хостом.
  • Ошибки аутентификации: поможет устранить проблемы с парольной аутентификацией или сбросом SSH-ключей.
  • Ошибки оболочки: это руководство поможет исправить ошибки ветвления процессов, валидации оболочки и доступа к домашнему каталогу.

Для взаимодействия SSH-клиента с SSH-сервером необходимо установить базовое сетевое подключение. Это руководство поможет определить некоторые общие ошибки подключения, исправить их и предотвратить их возникновение в будущем.

Требования

  • Убедитесь, что можете подключиться к виртуальному серверу через консоль.
  • Проверьте панель на предмет текущих проблем, влияющих на работу и состояние сервера и гипервизора.

Основные ошибки

Разрешение имени хоста

Большинство ошибок подключения возникает тогда, когда ссылка на хост SSH не может быть сопоставлена с сетевым адресом. Это почти всегда связано с DNS, но первопричина часто бывает не связана с DNS.

На клиенте OpenSSH эта команда:

ssh user@example.com

может выдать ошибку:

ssh: Could not resolve hostname example.com: Name or service not known

В PuTTY может появиться такая ошибка:

Unable to open connection to example.com Host does not exist

Чтобы устранить эту ошибку, можно попробовать следующее:

  • Проверьте правильность написания имени хоста.
  • Убедитесь, что вы можете разрешить имя хоста на клиентской машине с помощью команды ping. Обратитесь к сторонним сайтам (WhatsMyDns.net, например), чтобы подтвердить результаты.

Если у вас возникают проблемы с разрешением DNS на любом уровне, в качестве промежуточного решения можно использовать IP-адрес сервера, например:

ssh user@111.111.111.111
# вместо
ssh user@example.com.

Истечение времени соединения

Эта ошибка значит, что клиент попытался установить соединение с SSH-сервером, но сервер не смог ответить в течение заданного периода ожидания.

На клиенте OpenSSH следующая команда:

ssh user@111.111.111.111

выдаст такую ошибку:

ssh: connect to host 111.111.111.111 port 22: Connection timed out

В PuTTY ошибка выглядит так:

Network error: Connection timed out

Чтобы исправить ошибку:

  • Убедитесь, что IP-адрес хоста указан правильно.
  • Убедитесь, что сеть поддерживает подключение через используемый порт SSH. Некоторые публичные сети могут блокировать порт 22 или пользовательские SSH-порты. Чтобы проверить работу порта, можно, например, попробовать подключиться к другим хостам через этот же порт. Это поможет вам определить, не связана ли проблема с самим сервером.
  • Проверьте правила брандмауэра. Убедитесь, что политика по умолчанию – не DROP.

Отказ в соединении

Эта ошибка означает, что запрос передается на хост SSH, но хост не может успешно принять запрос.

На клиенте OpenSSH следующая команда выдаст ошибку:

ssh user@111.111.111.111
ssh: connect to host 111.111.111.111 port 22: Connection refused

В PuTTY ошибка появится в диалоговом окне:

Network error: Connection refused

Эта ошибка имеет общие с ошибкой Connection Timeout причины. Чтобы исправить её, можно сделать следующее:

  • Убедиться, что IP-адрес хоста указан правильно.
  • Убедиться, что сеть поддерживает подключение через используемый порт SSH. Некоторые публичные сети могут блокировать порт 22 или пользовательские SSH-порты. Чтобы проверить работу порта, можно, например, попробовать подключиться к другим хостам через этот же порт.
  • Проверить правила брандмауэра. Убедитесь, что политика по умолчанию – не DROP, и что брандмауэр не блокирует этот порт.
  • Убедиться, что сервис запущен и привязан к требуемому порту.

Рекомендации по исправлению ошибок подключения

Брандмауэр

Иногда проблемы с подключением возникают из-за брандмауэра. Он может блокировать отдельные порты или сервисы.

Читайте также: Что такое брандмауэр и как он работает?

В разных дистрибутивах используются разные брандмауэры. Вы должны научиться изменять правила и политики своего брандмауэра. В Ubuntu обычно используется UFW, в CentOS – FirewallD. Брандмауэр iptables используется независимо от системы.

Читайте также:

  • Основы UFW: общие правила и команды фаервола
  • Настройка брандмауэра FirewallD в CentOS 7
  • Основы Iptables: общие правила и команды брандмауэра

Чтобы настроить брандмауэр, нужно знать порт сервиса SSH. По умолчанию это порт 22.

Чтобы запросить список правил iptables, введите:

iptables -nL

Такой вывод сообщает, что правил, блокирующих SSH, нет:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Если в выводе вы видите правило или политику по умолчанию REJECT или DROP, убедитесь, что цепочка INPUT разрешает доступ к порту SSH.

Чтобы запросить список правил FirewallD, введите:

firewall-cmd --list-services

Список, появившийся на экране, содержит все сервисы, которые поддерживаются брандмауэром. В списке должно быть правило:

dhcpv6-client http ssh

Если вы настроили пользовательский порт SSH, используйте опцию –list-ports. Если вы создали пользовательское определение сервиса, добавьте опцию –list-services, чтобы найти SSH.

Чтобы проверить состояние UFW, введите:

ufw status

Команда вернёт доступные порты:

Status: active
To                         Action      From
--                         ------      ----
22                         LIMIT       Anywhere
443                        ALLOW       Anywhere
80                         ALLOW       Anywhere
Anywhere                   ALLOW       192.168.0.0
22 (v6)                    LIMIT       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)

В списке должен быть порт SSH.

Проверка состояния сервиса SSH

Если вы не можете подключиться к серверу по SSH, убедитесь, что сервис SSH запущен. Способ сделать это зависит от операционной системы сервера. В более старых версиях дистрибутивов (Ubuntu 14.04, CentOS 6, Debian 8) используется команда service. Современные дистрибутивы на основе Systemd используют команду systemctl.

Метод проверки состояния сервиса может варьироваться от системы к системе. В более старых версиях (Ubuntu 14 и ниже, CentOS 6, Debian 6) используется команда service, поддерживаемая системой инициализации Upstart, а в более современных дистрибутивах для управления сервисом используется команда systemctl.

Примечание: В дистрибутивах Red Hat (CentOS и Fedora) сервис называется sshd, а в Debian и Ubuntu – ssh.

В более старых версия используйте команду:

service ssh status

Если процесс работает должным образом, вы увидите вывод, который содержит PID:

ssh start/running, process 1262

Если сервис не работает, вы увидите:

ssh stop/waiting

В системах на основе SystemD используйте:

systemctl status sshd

В выводе должна быть строка active:

sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
Active: active (running) since Mon 2017-03-20 11:00:22 EDT; 1 months 1 days ago
Process: 899 ExecStartPre=/usr/sbin/sshd-keygen (code=exited, status=0/SUCCESS)
Main PID: 906 (sshd)
CGroup: /system.slice/sshd.service
├─  906 /usr/sbin/sshd -D
├─26941 sshd: [accepted]
└─26942 sshd: [net]

Если сервис не работает, вы увидите в выводе inactive:

sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
Active: inactive (dead) since Fri 2017-04-21 08:36:13 EDT; 2s ago
Process: 906 ExecStart=/usr/sbin/sshd -D $OPTIONS (code=exited, status=0/SUCCESS)
Process: 899 ExecStartPre=/usr/sbin/sshd-keygen (code=exited, status=0/SUCCESS)
Main PID: 906 (code=exited, status=0/SUCCESS)

Чтобы перезапустить сервис, введите соответственно:

service ssh start
systemctl start sshd

Проверка порта SSH

Существует два основных способа проверить порт SSH: проверить конфигурационный файл SSH или просмотреть запущенный процесс.

Как правило, конфигурационный файл SSH хранится в /etc/ssh/sshd_config. Стандартный порт 22 может переопределяться любой строкой в этом файле, определяющей директиву Port.

Запустите поиск по файлу с помощью команды:

grep Port /etc/ssh/sshd_config

Читайте также: Использование Grep и регулярных выражений для поиска текстовых шаблонов в Linux

Команда вернёт:

Port 22

Если вы уже убедились, что сервис работает, теперь вы можете узнать, работает ли он на требуемом порте. Для этого используйте команду ss. Команда netstat –plnt выдаст аналогичный результат, но команду ss рекомендуется использовать для запроса информации сокета из ядра.

ss -plnt

В выводе должно быть указано имя программы и порт, который она прослушивает. Например, следующий вывод сообщает, что сервис SSH прослушивает все интерфейсы и порт 22.

State       Recv-Q Send-Q              Local Address:Port                       Peer Address:Port
LISTEN      0      128                 *:22                                     *:*                   users:(("sshd",pid=1493,fd=3))
LISTEN      0      128                 :::22                                    :::*                  users:(("sshd",pid=1493,fd=4))

Символ * и 0.0.0.0 указывает, что все интерфейсы сервера прослушиваются. Строка 127.0.0.1 значит, что сервис не является общедоступным. В sshd_config директива ListenAddress должна быть закомментирована, чтобы прослушивать все интерфейсы, или должна содержать внешний IP-адрес сервера.

Если у вас не получается самостоятельно настроить соединение SSH, вы можете обратиться за помощью к службе поддержки своего хостинг-провайдера.

Tags: firewalld, Iptables, OpenSSH, PuTTY, SSH, UFW

Резюмируя вышесказанное (и немного отсебятины) — открываем терминал и выполняем команды. На второй команде он может спросить пароль, это нормально, пробуем ввести свой. Если не подошёл, то ищем того, кто ставил убунту и дальше мучаем его :)
1. Проверяем, есть ли в процессах, собственно, сервер SSH
ps aux | grep ssh
Если видим в выводе только эту команду, ставим OpenSSHd
sudo apt-get install openssh-server
Если написал, что is already the newest version, то пробуем запустить
sudo service ssh restart
ps aux | grep ssh
Если не появился, то вывод следующих команд в студию:
cat /etc/ssh/sshd_config
tail -10 /var/log/syslog

2. Если в выводе ps aux есть что-то вроде /usr/sbin/sshd -D, то
sudo netstat -4nlp | grep sshd
Если там не 0.0.0.0:22, а, например 0.0.0.0:2222, то меняем порт в PuTTY на 2222 (а ещё можно исправить в sshd_config, но это потом)
Если всё ОК, то остался файерволл
sudo iptables-save
и вывод в студию

  • Печать

Страницы: [1] 2  Все   Вниз

Тема: проблема с SSH  (Прочитано 3517 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
johnny7991

Здравствуйте) есть 2 компьютера. На первом установлена WIN10 с VIRTUALBOX,на которой поставлен ubuntu server 16.04. От этого ПК провод идет в роутер (который работает в режиме моста) и после попадает в главный роутер от мгтс. Сеть между сервером и виндой настроена через сетевой мост, айпишники для обоих привязаны через роутер в локальной сети. Win10 с ubuntu server пингуется и SSH работает,интернет и на сервере и на WIN работает, вопросов нет.

 На втором компьютере (ноутбуке) стоял Elemental OS на Ubuntu и было решено попробовать подключиться к серверу ubuntu через SSH. Привязал айпишник ноутбука в роутер (мгтс). Все машины пропинговал,все пингуется server и elemental OS тоже. Везде установил SSH, открыл порты в ufw, далее пробую подключиться с ноутбука на сервер командой «ssh 192.168.1.67», и на этом моменте ничего не происходит, потом выводит «connection closed by port 22» или ещё один раз добавилось broken pipe. Далее попробовал через PUTTY с винды подключиться на ноутбук, а он выводит «Сетевая ошибка: Соединение разорвано локальным компьютером». Пробую подключиться с сервера на ноутбук,так же ничего не происходит,просто курсор на след строку перепрыгивает и все.

Что я понял (наверное) ввиду того,что win10 и ubuntu server спокойно связываются через putty,я подумал,что проблема в Elemental OS и поставил Kali linux (установщик был и я подумал почему бы и нет). Сделал все то же самое и ничего не изменилось,все такие же ошибки.

Что я делал.
1. Изменял конфиги ssh на ноутбуке (ServerAliveCountMAx и interval)
2. Добавлял в Port Mapping на роутере порты 22
3. Отключал везде firewall
4. перезагружал все, несколько раз

Я уже не знаю куда смотреть,прочитал много статей про настройку SSH,а там все 2 командами ограничивалось…


Оффлайн
fisher74

А есть ли суслик в поле?
Локально на ноуте к ssh можете подключиться?
Смотрим его на ноуте, раз к ноуту не можем подключиться.

sudo netstat -nltp | grep sshзаодно и правила netfiltr давайте посмотрим

sudo iptables-save


Оффлайн
symon.2014

connection closed by port 22

Может немного не в тему , но я бы задумался о пробросе (замене ) порта 22 между виртуалкой с сервером и хостом ( 2222 —> 22 )


Оффлайн
fisher74

Ой не путайте ТС, он и так уже делает конвульсионные движения. Например это

1. Изменял конфиги ssh на ноутбуке (ServerAliveCountMAx и interval)
2. Добавлял в Port Mapping на роутере порты 22
3. Отключал везде firewall
4. перезагружал все, несколько раз

Последнее уже явно в агонии…


Оффлайн
EvangelionDeath

fisher74, так он еще и систему на ноуте переставил))) Интересует одно: на роутере то хоть незафаерволен 22 порт)

« Последнее редактирование: 17 Января 2018, 10:26:26 от EvangelionDeath »

HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04


Оффлайн
fisher74

Интересует одно: на роутере то хоть незафаерволен 22 порт)

Вы считаете это важным моментом? Ню-ню…

Вот я больше предполагаю, что ноут на вайфай и в роутере вайфай зона изолирована от локалки (хоть хосты и пингуеются друг с другом).

« Последнее редактирование: 17 Января 2018, 11:39:03 от fisher74 »


Оффлайн
EvangelionDeath

вайфай зона изолирована от локалки (хоть хосты и пингуеются друг с другом)

я тоже об этом думал. но при изоляции и пинги не проходят, по крайней мере у меня

HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04


Оффлайн
johnny7991

Я чуть ли с ума вчера не сошел!!!!!!! с 12 до 7 ночи это делал! ни в какую вообще. И да,вы правы,все дело было в WIFI,по проводу все подсоединилось) а подскажите мне, что вот теперь делать? как открыть доступ по wifi? роутер,повторюсь мгтс, может перепрошить его? это легально?


Оффлайн
AnrDaemon

Зайти в его настройки, стандартный логин-пароль тривиально гуглится.
Отключить изоляцию WiFi клиентов.


Пользователь добавил сообщение 17 Января 2018, 13:38:34:


Только гуглить не по «роутер мгтс», а по реальной модели машинки.

Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…


Оффлайн
EvangelionDeath

а подскажите мне, что вот теперь делать? как открыть доступ по wifi?

Зайте в настройки Wi-Fi роутера и искать Client Isolation (ну или как то по другому может называться, зачастую находится в дополнительных настройках Wi-Fi)

HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04


Оффлайн
johnny7991

У меня в роутере вот такое

Беспроводная сеть
 1. Основные параметры (ну тут все понятно)
 2. Безопасность (тут тоже понятно — пароли)
 3. Фильтрация по MAC (тут есть переключатель (разрешить запретить отключить) и таблица клиентов с возможностью добавления)
 4. И автовыбор канала


Оффлайн
AnrDaemon

johnny7991, вы правда думаете, что все роутеры одинаковые и админки им один человек пишет под копирку?

Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…


Оффлайн
johnny7991

Все,проблема решена) попробовал подключить через свой другой роутер,все заработало! а с роутером от МГТС не работало. Позвонил в мгтс,обрисовал ситуацию всю, меня 30 минут пытались убедить в том,что это я накосячил и что я идиот и ничего не могу. Потом сказали,что перезапустят конфиг роутера и перезвонят через 5 минут. Перезвонили,попробовал — ничего не работает и после мне сказали,что это у Роутера Sercomm RV6688 проблемы с соединением с wifi 2.4g (а на 5g должна работать)и  лановской сетью)))))) Сказали,что в феврале выйдет новая прошивка,которая все удалит (не особо верится)

Короче,весело))

Всем спасибо за помощь,да прибудет с вами Linux)


Оффлайн
EvangelionDeath

HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04


Оффлайн
johnny7991

EvangelionDeath, Спасибо,я уже прочитал о нем, он был включен, я уже написал,что проблема в самом роутере..


  • Печать

Страницы: [1] 2  Все   Вверх

PuTTy — это бесплатное терминальное приложение с открытым исходным кодом, позволяющее системному администратору входить на удаленный сервер через SSH. Это небольшое, но очень стабильное приложение также используется для безопасной передачи файлов через SCP и SFTP.

Если вы работаете в сфере ИТ или у вас есть собственный набор серверов, которые необходимо подключить, PuTTy не является для вас чуждой концепцией. Однако то, что может быть чуждым понятием, является фатальной ошибкой Putty.

Ошибка «Ошибка сети: соединение отказано» является одной из распространенных ошибок, связанных с PuTTY, с которыми вы можете столкнуться при работе с Putty. Ошибка появляется, когда вы пытаетесь подключиться к удаленному серверу в первый раз или в 100- й раз.

У меня были проблемы с PuTTy, но в большинстве случаев ошибки вызваны небольшими, но не столь очевидными проблемами.

Если вы один из тех, кто пытается диагностировать ошибку «отказано в соединении», эта статья поможет вам устранить ошибку.

В этой статье я перечислил все возможные решения проблемы отказа в соединении PuTTy. Убедитесь, что вы пытаетесь каждый из них попробовать, пока проблема не будет решена.

Что вызывает ошибку сети: ошибка соединения отклонена?

Ошибка может возникнуть по нескольким причинам. Некоторые из них перечислены ниже.

  • Пользователи могут столкнуться с ошибкой «Ошибка сети: соединение отказано»:
  • Если приложение пытается получить доступ к службам, которые не предлагаются / не поддерживаются сервером
  • Если приложение пытается подключиться к серверу telnet, который не поддерживается сервером.
  • Если ваш маршрутизатор блокирует соединение по соображениям безопасности.
  • Если сервер не поддерживает порт по умолчанию, используемый системным администратором в PuTTy.

Вот некоторые из распространенных причин сетевых ошибок: ошибка соединения в PuTTy. Ниже приведены некоторые общие решения, которые вы можете попытаться исправить.

Как я могу исправить ошибку сети: ошибка соединения отклонена?

Исправление 1: обратитесь к системному / сетевому администратору

Если вы не являетесь системным администратором, лучше начать с обращения к системному администратору.

Системные администраторы могут изменить некоторые разрешения в маршрутизаторе, если они замечают какое-либо неизвестное устройство, пытающееся подключиться, или по другим причинам безопасности время от времени.

Если это так, вы можете легко решить проблему, связавшись с системным администратором, прежде чем пытаться решить проблему с вашей стороны.

  • Также прочитайте: NetCrunch Tools для Windows помогает сетевым администраторам выполнять повседневные задачи

Исправление 2: проверьте, включено ли соединение SSH

В зависимости от устройства, которое вы пытаетесь подключить, ошибка сети — ошибка отказа в соединении может появиться, если в настройках устройства отключен SSH.

Например, если вы используете Raspberry Pi для подключения через ПК, убедитесь, что ssh включен в конфигурации. Вот как это сделать.

В Raspberry Pi выберите Конфигурация> Интерфейсы> ssh. Включите сервис и попробуйте снова.

Настройки могут меняться в зависимости от используемого вами устройства, но конечным результатом должно быть работающее сетевое соединение через PuTTy.

Исправление 3: проверьте, указывает ли ваш домен записи на сервер

Если вы работаете с новым сервером и новым доменом, ошибка может произойти из-за неправильного адреса DNS-сервера в настройках домена. Весь регистратор доменов позволяет вам указать свой домен любому стороннему хостинг-провайдеру, используя сервер имен.

Если вы только установили сервер и не изменили сервер имен, вы можете столкнуться с сетевой ошибкой: ошибка соединения отклонена.

Чтобы решить эту проблему, войдите в систему вашего поставщика доменных имен и проверьте настройки сервера имен, чтобы увидеть, указывают ли серверы имен на вашего хостинг-провайдера.

  • Также читайте: Как присоединиться к домену в Windows 10, 8.1

Исправление 4: проверка наличия черного и белого списка IP-адресов на сервере

Из соображений безопасности системный администратор может разрешить подключение только с компьютеров с известным IP-адресом , которые уже внесены в белый список в файле конфигурации.

Если ваш IP-адрес интернет-провайдера изменился или вы новичок в работе, вам, вероятно, нужно попросить администратора сети сделать исключение.

То же самое может случиться и в том случае, если ваш IP-адрес случайно внесен в черный список администратором сети.

Итак, обратитесь к сетевому администратору для обоих сценариев и посмотрите, может ли это помочь вам решить проблему.

Исправление 5: отключить брандмауэр

Если вы используете Windows, ваш антивирус или брандмауэр Windows Security по умолчанию и функция защиты сети могут блокировать входящее соединение, в результате чего в соединении отказано.

Попробуйте временно отключить брандмауэр, чтобы проверить, может ли это устранить ошибку «отказано в соединении». Если это произойдет, вам может понадобиться настроить параметры брандмауэра, чтобы полностью исправить ошибку.

Отключить брандмауэр в Windows Security

Отключить антивирусный брандмауэр

Если у вас запущена сторонняя антивирусная программа, вам также может потребоваться отключить брандмауэр, предлагаемый приложением. Вы можете отключить брандмауэр в настройках антивируса.

Попробуйте подключиться, используя PuTTy сейчас. Если соединение установлено, вам нужно настроить параметры брандмауэра, чтобы решить проблему.

  • Читайте также: 15 лучших брандмауэров для защиты домашней сети

Другие исправления

Если ни одно из исправлений не помогло вам, вы можете попробовать перезапустить сервер SSH или перезагрузить серверы.

Если ваш сервер был настроен кем-то другим, возможно, он переместил порт по умолчанию в соответствии с их удобством. Свяжитесь и попросите узлы конфигурации, чтобы получить лучшее представление о портах.

Если вы используете полностью управляемый сервер, обратитесь в службу поддержки. Если проблема возникла со стороны хостинг-провайдера, системный администратор исправит проблему.

И последнее, но не менее важное: начать использовать другие альтернативы Putty, такие как другие терминалы SH, которые могут помочь вам в случае возникновения ошибки, характерной для PuTTY.

Вывод

Putty Fatal error «Ошибка сети: ошибка в соединении отклонена» может произойти по нескольким причинам, и я попытался перечислить наиболее распространенные проблемы и способы их устранения.

Однако, если исправления, перечисленные в этой статье, не работают, вы можете задать вопрос на форумах, связанных с вашим устройством или ОС, на которых появляется ошибка.

Позвольте нам сейчас, если какие-то исправления сработали для вас, или если у вас есть решение, которое не указано в статье в комментариях ниже.

СВЯЗАННЫЕ ИСТОРИИ, КОТОРЫЕ ВЫ МОЖЕТЕ КАК:

  • Windows не может найти драйвер для вашего сетевого адаптера? Мы получили исправление
  • Вот что нужно сделать, если ваша домашняя сеть не появится
  • Что делать, если ключ безопасности сети не работает в Windows 10

25 мая, 2017 11:40 дп
93 893 views
| Комментариев нет

Linux, SSH

В первой статье этой серии вы узнали о том, как и в каких ситуациях вы можете попробовать исправить ошибки SSH. Остальные статьи расскажут, как определить и устранить ошибки:

  • Ошибки протокола: в этой статье вы узнаете, что делать, если сбрасываются клиентские соединения, клиент жалуется на шифрование или возникают проблемы с неизвестным или измененным удаленным хостом.
  • Ошибки аутентификации: поможет устранить проблемы с парольной аутентификацией или сбросом SSH-ключей.
  • Ошибки оболочки: это руководство поможет исправить ошибки ветвления процессов, валидации оболочки и доступа к домашнему каталогу.

Для взаимодействия SSH-клиента с SSH-сервером необходимо установить базовое сетевое подключение. Это руководство поможет определить некоторые общие ошибки подключения, исправить их и предотвратить их возникновение в будущем.

Требования

  • Убедитесь, что можете подключиться к виртуальному серверу через консоль.
  • Проверьте панель на предмет текущих проблем, влияющих на работу и состояние сервера и гипервизора.

Основные ошибки

Разрешение имени хоста

Большинство ошибок подключения возникает тогда, когда ссылка на хост SSH не может быть сопоставлена с сетевым адресом. Это почти всегда связано с DNS, но первопричина часто бывает не связана с DNS.

На клиенте OpenSSH эта команда:

ssh user@example.com

может выдать ошибку:

ssh: Could not resolve hostname example.com: Name or service not known

В PuTTY может появиться такая ошибка:

Unable to open connection to example.com Host does not exist

Чтобы устранить эту ошибку, можно попробовать следующее:

  • Проверьте правильность написания имени хоста.
  • Убедитесь, что вы можете разрешить имя хоста на клиентской машине с помощью команды ping. Обратитесь к сторонним сайтам (WhatsMyDns.net, например), чтобы подтвердить результаты.

Если у вас возникают проблемы с разрешением DNS на любом уровне, в качестве промежуточного решения можно использовать IP-адрес сервера, например:

ssh user@111.111.111.111
# вместо
ssh user@example.com.

Истечение времени соединения

Эта ошибка значит, что клиент попытался установить соединение с SSH-сервером, но сервер не смог ответить в течение заданного периода ожидания.

На клиенте OpenSSH следующая команда:

ssh user@111.111.111.111

выдаст такую ошибку:

ssh: connect to host 111.111.111.111 port 22: Connection timed out

В PuTTY ошибка выглядит так:

Network error: Connection timed out

Чтобы исправить ошибку:

  • Убедитесь, что IP-адрес хоста указан правильно.
  • Убедитесь, что сеть поддерживает подключение через используемый порт SSH. Некоторые публичные сети могут блокировать порт 22 или пользовательские SSH-порты. Чтобы проверить работу порта, можно, например, попробовать подключиться к другим хостам через этот же порт. Это поможет вам определить, не связана ли проблема с самим сервером.
  • Проверьте правила брандмауэра. Убедитесь, что политика по умолчанию – не DROP.

Отказ в соединении

Эта ошибка означает, что запрос передается на хост SSH, но хост не может успешно принять запрос.

На клиенте OpenSSH следующая команда выдаст ошибку:

ssh user@111.111.111.111
ssh: connect to host 111.111.111.111 port 22: Connection refused

В PuTTY ошибка появится в диалоговом окне:

Network error: Connection refused

Эта ошибка имеет общие с ошибкой Connection Timeout причины. Чтобы исправить её, можно сделать следующее:

  • Убедиться, что IP-адрес хоста указан правильно.
  • Убедиться, что сеть поддерживает подключение через используемый порт SSH. Некоторые публичные сети могут блокировать порт 22 или пользовательские SSH-порты. Чтобы проверить работу порта, можно, например, попробовать подключиться к другим хостам через этот же порт.
  • Проверить правила брандмауэра. Убедитесь, что политика по умолчанию – не DROP, и что брандмауэр не блокирует этот порт.
  • Убедиться, что сервис запущен и привязан к требуемому порту.

Рекомендации по исправлению ошибок подключения

Брандмауэр

Иногда проблемы с подключением возникают из-за брандмауэра. Он может блокировать отдельные порты или сервисы.

Читайте также: Что такое брандмауэр и как он работает?

В разных дистрибутивах используются разные брандмауэры. Вы должны научиться изменять правила и политики своего брандмауэра. В Ubuntu обычно используется UFW, в CentOS – FirewallD. Брандмауэр iptables используется независимо от системы.

Читайте также:

  • Основы UFW: общие правила и команды фаервола
  • Настройка брандмауэра FirewallD в CentOS 7
  • Основы Iptables: общие правила и команды брандмауэра

Чтобы настроить брандмауэр, нужно знать порт сервиса SSH. По умолчанию это порт 22.

Чтобы запросить список правил iptables, введите:

iptables -nL

Такой вывод сообщает, что правил, блокирующих SSH, нет:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Если в выводе вы видите правило или политику по умолчанию REJECT или DROP, убедитесь, что цепочка INPUT разрешает доступ к порту SSH.

Чтобы запросить список правил FirewallD, введите:

firewall-cmd --list-services

Список, появившийся на экране, содержит все сервисы, которые поддерживаются брандмауэром. В списке должно быть правило:

dhcpv6-client http ssh

Если вы настроили пользовательский порт SSH, используйте опцию –list-ports. Если вы создали пользовательское определение сервиса, добавьте опцию –list-services, чтобы найти SSH.

Чтобы проверить состояние UFW, введите:

ufw status

Команда вернёт доступные порты:

Status: active
To                         Action      From
--                         ------      ----
22                         LIMIT       Anywhere
443                        ALLOW       Anywhere
80                         ALLOW       Anywhere
Anywhere                   ALLOW       192.168.0.0
22 (v6)                    LIMIT       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)

В списке должен быть порт SSH.

Проверка состояния сервиса SSH

Если вы не можете подключиться к серверу по SSH, убедитесь, что сервис SSH запущен. Способ сделать это зависит от операционной системы сервера. В более старых версиях дистрибутивов (Ubuntu 14.04, CentOS 6, Debian 8) используется команда service. Современные дистрибутивы на основе Systemd используют команду systemctl.

Метод проверки состояния сервиса может варьироваться от системы к системе. В более старых версиях (Ubuntu 14 и ниже, CentOS 6, Debian 6) используется команда service, поддерживаемая системой инициализации Upstart, а в более современных дистрибутивах для управления сервисом используется команда systemctl.

Примечание: В дистрибутивах Red Hat (CentOS и Fedora) сервис называется sshd, а в Debian и Ubuntu – ssh.

В более старых версия используйте команду:

service ssh status

Если процесс работает должным образом, вы увидите вывод, который содержит PID:

ssh start/running, process 1262

Если сервис не работает, вы увидите:

ssh stop/waiting

В системах на основе SystemD используйте:

systemctl status sshd

В выводе должна быть строка active:

sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
Active: active (running) since Mon 2017-03-20 11:00:22 EDT; 1 months 1 days ago
Process: 899 ExecStartPre=/usr/sbin/sshd-keygen (code=exited, status=0/SUCCESS)
Main PID: 906 (sshd)
CGroup: /system.slice/sshd.service
├─  906 /usr/sbin/sshd -D
├─26941 sshd: [accepted]
└─26942 sshd: [net]

Если сервис не работает, вы увидите в выводе inactive:

sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
Active: inactive (dead) since Fri 2017-04-21 08:36:13 EDT; 2s ago
Process: 906 ExecStart=/usr/sbin/sshd -D $OPTIONS (code=exited, status=0/SUCCESS)
Process: 899 ExecStartPre=/usr/sbin/sshd-keygen (code=exited, status=0/SUCCESS)
Main PID: 906 (code=exited, status=0/SUCCESS)

Чтобы перезапустить сервис, введите соответственно:

service ssh start
systemctl start sshd

Проверка порта SSH

Существует два основных способа проверить порт SSH: проверить конфигурационный файл SSH или просмотреть запущенный процесс.

Как правило, конфигурационный файл SSH хранится в /etc/ssh/sshd_config. Стандартный порт 22 может переопределяться любой строкой в этом файле, определяющей директиву Port.

Запустите поиск по файлу с помощью команды:

grep Port /etc/ssh/sshd_config

Читайте также: Использование Grep и регулярных выражений для поиска текстовых шаблонов в Linux

Команда вернёт:

Port 22

Если вы уже убедились, что сервис работает, теперь вы можете узнать, работает ли он на требуемом порте. Для этого используйте команду ss. Команда netstat –plnt выдаст аналогичный результат, но команду ss рекомендуется использовать для запроса информации сокета из ядра.

ss -plnt

В выводе должно быть указано имя программы и порт, который она прослушивает. Например, следующий вывод сообщает, что сервис SSH прослушивает все интерфейсы и порт 22.

State       Recv-Q Send-Q              Local Address:Port                       Peer Address:Port
LISTEN      0      128                 *:22                                     *:*                   users:(("sshd",pid=1493,fd=3))
LISTEN      0      128                 :::22                                    :::*                  users:(("sshd",pid=1493,fd=4))

Символ * и 0.0.0.0 указывает, что все интерфейсы сервера прослушиваются. Строка 127.0.0.1 значит, что сервис не является общедоступным. В sshd_config директива ListenAddress должна быть закомментирована, чтобы прослушивать все интерфейсы, или должна содержать внешний IP-адрес сервера.

Если у вас не получается самостоятельно настроить соединение SSH, вы можете обратиться за помощью к службе поддержки своего хостинг-провайдера.

Tags: firewalld, Iptables, OpenSSH, PuTTY, SSH, UFW

Понравилась статья? Поделить с друзьями:
  • Putty ошибка server unexpectedly closed network connection
  • Putty ошибка network error connection timed out
  • Putty выдает ошибку network error connection refused
  • Putty expected key exchange group packet from server ошибка
  • Push is not a function ошибка