SSH внезапно перестает работать: «Ошибка записи: сломанная труба»

9

Я использую MacBook Pro дома и регулярно захожу в машины в моей лаборатории. Однако в течение последних 3-4 дней всякий раз, когда я выполняю SSH на компьютере в лаборатории, я получаю ошибку Write Failed: Broken Pipe, едва ли в течение 2 минут после того, как я ssh-ы.

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

NSR
источник
2
Вы используете ServerAliveIntervalили нет? Если нет, попробуйте установить его.
0xC0000022L
Да. Он установлен на 30. Я попробовал 15, 30, 60, и это не повлияло на производительность (или ее отсутствие)
NSR
Вы пробовали 1SSHing с другой машины в лабораторию, чтобы увидеть, является ли это MacBook? и 2SSHing от macbook к другой машине, чтобы видеть, является ли это лабораторией? выяснение того, что, если у
кого-
Ну, я использовал свой ноутбук для SSH на тех же машинах из другой сети (университетская сеть), и он работал нормально. Я предполагаю, что с моей домашней сетью происходит нечто странное.
NSR

Ответы:

11

Это похоже на проблему с сетью.

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

Одной из возможных причин этих симптомов является конфликт IP-адресов. Проверьте, где клиент и сервер получают свои IP-адреса. Если вы продолжите ping server.example.comработать, поможет ли это продлить соединение? Если это так, у вас конфликт IP-адресов. (Это pingпомогает, потому что он постоянно сообщает маршрутизаторам о маршрутизации IP-пакетов на ваш компьютер - но вы все равно потеряете соединение, если другой компьютер отправит перед вами ответ ARP.) Если это проблема, вам нужно исправить это: организовать для одной из машин, которые используют тот же адрес, чтобы использовать другой адрес.

Также проверьте таблицу маршрутизации на вашем компьютере. Убедитесь, что пакеты на сервер направляются на соответствующий интерфейс. (Хотя из-за плохой таблицы маршрутизации соединение обычно вообще не работает, существует крайний случай, когда симптомы описывают те, которые вы описываете: если вы получаете адрес с DHCP, а DHCP-сервер также является сервером, с которым вы связываетесь - адрес DHCP-сервера будет перенаправлен на нужный интерфейс до истечения срока действия вашего кэша ARP.)

Жиль "ТАК - перестань быть злым"
источник
1
ах! pinging произвольного сервера, кажется, работает (пока). Похоже, это было столкновение IP-адресов. Я буду продолжать расследование и постараюсь убедиться, что этого не произойдет. Спасибо !!
NSR
Привет, Жиль, спасибо за предоставленное решение. Я исправляю эту проблему с 5 дней, настраивая параметры SSH и так далее ... Но не сработало. Ваше решение мне очень помогло. Большое спасибо.
Раджасехар
1

Это может быть связано с потерей пакета. Такой инструмент mtrможет помочь вам определить, какой из хостов на маршруте вызывает проблемы. Здесь вы найдете инструкции по его установке на Mac OS X.

Фредерик Дьюердт
источник
1

Я обнаружил эту проблему с некоторыми серверами в главном офисе и решил ее, используя:

TCPKeepAlive yes
ServerAliveInterval 5

в конфигурационном файле ssh ( ~/.ssh/config or /etc/ssh/ssh_config).

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

Энтон
источник
1

Я решил свою проблему в Mac OS X, я изменил

#ClientAliveInterval 0

в

ClientAliveInterval 300

в /etc/sshd_configследующем это , и перезагрузите машину, сделано.

limlighten
источник
1
На MAC OS X 10.12.6 находился в / etc / ssh / sshd_config
WebOrCode