Как устранить ошибки «Отказано в соединении» в соединении SSH?

97

У меня дома установлен Ubuntu Server 10.10 32-bit. Я делаю SSH-соединения с ПК через Putty.

Проблема в том, что иногда я могу войти без проблем. Тем не менее, иногда это дает мне такую ​​ошибку:Network error: Connection refused.

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

Что я могу сделать, чтобы решить эту проблему?

Редактировать:

И иногда, Putty выдает Network error: Software caused connection abortошибку после отображения login as:текста.

Вот вывод ping -t:

Pinging 192.168.2.254 with 32 bytes of data:
Reply from 192.168.2.254: bytes=32 time=6ms TTL=64
Reply from 192.168.2.254: bytes=32 time=65ms TTL=6
Reply from 192.168.2.254: bytes=32 time=88ms TTL=6
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=3ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64

Я отключил межсетевой экран маршрутизатора, и теперь все работает. За исключением этого, я все еще не могу зайти на свой веб-сервер, набрав внешний IP с моего компьютера.

frbry
источник
в следующий раз это будет так; снова запустить пинг, все еще работает? сколько людей сш к этой машине?
myusuf3
Только я ssh этот сервер.
Frbry
Точно та же самая проблема здесь, также получая смесь успешных соединений (которые затем работают в течение нескольких часов), «соединение отказано» и «программное обеспечение вызвало прерывание соединения» после ввода логина или пароля. Чтобы предоставить некоторые дополнительные сведения: в моем случае это 64-разрядная виртуальная машина (под управлением Ubuntu Server 10.10) на хосте Microsoft Hyper-V, использующая эмуляцию «старой сетевой карты».
hheimbuerger
SSH установлен на вашем сервере?
Виллиан Соареш

Ответы:

82

Вы должны установить openssh-сервер в Linux, прежде чем это сработает. Получите внутренний IP-адрес Ubuntu и используйте этот IP-адрес для настройки переадресации портов на разделе порта 22 (SSH) вашего маршрутизатора. Хотя если вы не собираетесь использовать SSH вне вашей сети, это не обязательно.

Вот как установить openssh-сервер:

sudo apt-get install openssh-server openssh-client
[ENTER PASSWORD]
МакГайвер
источник
10
Непосредственно не отвечает на вопрос, но это полезно, поскольку Ubuntu не поставляется с SSH-сервером.
Остати
Я недавно получил новый ноутбук и совершенно забыл, что он не установлен по умолчанию = D
Izkata
40

Конфликт IP-адресов оказался основной причиной, когда я видел это сообщение об ошибке SSH.

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

В этой замечательной статье рассказывалось, как использовать arp-scan для проверки того, что два устройства используют один и тот же IP-адрес.

В моем случае сервер имел статический IP-адрес 192.168.1.42, я использовал arp-scan, чтобы проверить этот адрес:

$ sudo apt-get install arp-scan
$ arp-scan -I eth0 -l | grep 192.168.1.42
  192.168.1.42 d4:eb:9a:f2:11:a1 (Unknown)
  192.168.1.42 f4:23:a4:38:b5:76 (Unknown) (DUP: 2)

Конечно же, произошел конфликт, как показано выше. Затем я запустил arp-scan без grep, обнаружил, что .43 доступен, пошел, отредактировал /etc/network/interfacesи изменил статический ip с .42 на .43

Риан Сандерсон
источник
На самом деле выполнение этой команды показало только одну строку на моем ящике, за исключением того, что имя было именем другого устройства.
assylias
Большое вам спасибо за правильное направление конфликта IP-адресов. Была похожая проблема! +1
DominikAngerer
Просто сэкономил мне столько времени ... слава ...
Крис Барлоу
Иногда мой маршрутизатор просто необходимо перезагрузить, чтобы решить эту проблему.
Габриэль Стейплс
14

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

arping 192.168.2.254

Вы должны проверить пул IP-адресов DHCP на сервере DHCP, убедиться, что никакие устройства не имеют статических IP-адресов, которые конфликтуют с пулом DHCP.

Эти ключи указывают на дублирование IP:

  • ping ttl и время туда и обратно выглядит как 2 разных сервера
  • прерывистое отключение без перезагрузки
Джон Шаламскас
источник
Отлично, указал мне прямо на правильный путь! Был в состоянии отследить его по второму MAC-адресу, к которому он был подключен, и изменить IP-адрес принтера
канадец Люк
1
Мне нужно было добавить -I wlan0 (wlan0 - мое wifi-устройство)
Гухур
6

У меня была такая же проблема, хотя у меня был статический IP-адрес. Оказывается, другому серверу в моей сети был назначен тот же (статический) IP-адрес. (Duh.) Так что кажется, что проблема вызвана конфликтами IP-адресов, но возможны различные способы их возникновения. Если вы установили статический режим, но проблема не устранена, попробуйте выключить компьютер и проверить связь с адресом. Если вы получили какие-либо ответы, начните искать, что еще может иметь тот же адрес.

DLosc
источник
1
Я испытал те же симптомы и отследил его до компьютера с тем же IP-адресом, что и у сервера.
SabreWolfy
5

откройте файл конфигурации ssh:

sudo nano /etc/ssh/ssh_config

найти порт

#port 22

убери резкую опцию порта

затем сохраните файл ctrl + xи перезапустите службу

sudo service ssh restart
Амин
источник
4

Что вы получите, если сделаете это?

grep 192.168.2.25 /etc/hosts.deny

Если это что-то возвращает, вам нужно удалить его.

Джоди Миддлтон
источник
10
Это одно из печально известных «бесполезных применений cat» - вы можете простоgrep 192.168.2.25 /etc/hosts.deny
Тобиас Кинцлер
@TobiasKienzler Исправлено
wjandrea
3

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

Проверьте / var / log / messages на наличие или отсутствие соединений Ethernet (или wlan в случае беспроводной связи). Если это так, попробуйте заменить кабели.

forcefsck
источник
Да, я попытался установить ssh-соединение за пределами моей сети (где находится мой сервер и мой компьютер). Кажется, работает хорошо. Мой сервер также является веб-сервером. Когда я пытаюсь подключиться через порт 80 с моего компьютера, я вижу страницу входа в мой модем ADSL. Но когда я пытаюсь сделать то же самое с другого компьютера, который находится за пределами моей сети, я вижу страницу Apache «Это работает».
Frbry
Какой у вас ip ПК, ip вашего сервера и ip внутреннего маршрутизатора adsl?
forcefsck
ПК: 192.168.2.2 (получено от DHCP) Сервер: 192.168.2.254 (статический, вне диапазона DHCP) Маршрутизатор ADSL: 192.168.2.1
frbry
Я немного запутался, когда вы подключаетесь с 192.168.2.2 к 192.168.2.254 порту 80, вы получаете логин модема adsl?
forcefsck
1
Если вы не настроили какой-либо веб-прокси на своем сервере, то, очевидно, ваш модем adsl отвечает на запросы, сделанные к 192.168.2.254, и, вероятно, это тот случай, когда вы получаете сообщение об Connection refusedошибке с ssh. Таким образом, вы должны перепроверить настройки вашего adsl модема.
forcefsck
3

Я могу подтвердить эту точную проблему: это не простая проблема с подключением. Канал Ethernet не меняет состояние; сервер доступен через пинг; Иногда ssh безупречно подключается, а затем, по-видимому, случайно не подключается или существующие сеансы ssh удаляются Это происходит в Ubuntu 10.04 и 11.04. Следуя предложению hheimbuerger, я дал серверу статический IP-адрес, это, похоже, исправило это.

Обходной путь: Измените адаптер с DHCP на статический.

Джордж
источник
1

У меня была точно такая же проблема, и в моем случае это был конфликт IP-адресов. У моей Ubuntu VM был динамический адрес, но другой машине (в данном случае телефону) был назначен статический IP-адрес, о котором DHCP-сервер не знал.

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

hheimbuerger
источник
1

Это в основном из-за одной из следующих причин:

  1. Слишком много пользователей в сети пытаются получить доступ к серверу
  2. Несколько компьютеров в сети имеют одинаковый IP-адрес с сервером, что вызывает конфликт IP-адресов
  3. Неверное имя пользователя или ваши учетные данные были отменены
Мевин Бабу
источник
0

Вы можете проверить свои iptablesправила на своем сервере. Похоже, у вас есть правило для ограничения новых соединений SSH.

Следующее правило разрешает 5 новых подключений в минуту, если вы превысите этот лимит, ваши новые подключения будут отклонены через некоторое время:

-A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m limit --limit 5/min -j ACCEPT

Смотрите документацию по IPTables / Netfilter , прокрутите немного до limit.

Lekensteyn
источник
0

arp-scan показывает два дублирующих устройства, но когда я запускаю Advanced IP scanner на Win8, все они выглядят нормально. Так что они не всегда соглашаются.

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

SDsolar
источник