SSH зависает при остановке удаленной системы

648
divB

Я успешно использовал

ssh -q -i pubkey root@192.168.200.122 'halt' 

в течение многих лет останавливать систему FreeBSD (FreeNAS) из Linux-коробки.

Внезапно из ничего это перестало работать: ssh навсегда зависает с этой командой. Так как это используется в скрипте резервного копирования, это деструктор.

Что могло случиться, что это внезапно случается? Является ли проблема более вероятной на стороне сервера (FreeBSD) или клиента (Linux). Как я могу это исправить (на стороне клиента)?

0
Что изменилось на стороне сервера / клиента, когда он перестал работать? mpy 9 лет назад 0
Ничего из того, что я знаю ;-) В противном случае я бы все перевернул и попробовал ... divB 9 лет назад 0
Попробуйте запустить `ssh` без флага` -q`. Roland Smith 9 лет назад 0

2 ответа на вопрос

0
ben

Вы пробовали войти в ssh вручную?

ssh -i pubkey root@192.168.200.122 

Мое единственное предположение состоит в том, что по какой-либо причине клиент known_hosts был изменен, удален и т. Д. Или запись в нем больше не соответствует, что возможно. Если openssl был изменен (обновлен?) На стороне сервера, то запись known_hosts не будет соответствовать.

И поэтому, когда вы используете ssh, даже с pubkey, вы получите это, если known_hosts не существует:

Подлинность хоста «192.168.200.122 (192.168.200.122)» не может быть установлена. Отпечаток ключа RSA: fa: 7c: 54: 45: 70: c2: 70: f9: f2: 3c: c9: 75: 4d: 83: 10: 5b. Вы уверены, что хотите продолжить подключение (да / нет)?

И поэтому он ждет вас, чтобы принять

Или вы получите это, если оно не совпадает

тест: ~ / .ssh # ssh 192.168.200.122 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @ ВНИМАНИЕ: ПУЛЬТ ДИСТАНЦИОННОЙ ИДЕНТИФИКАЦИИ ИЗМЕНЕН! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ ВОЗМОЖНО, ЧТО-то кто-то делает противное! Кто-то может подслушивать вас прямо сейчас (атака «человек посередине»)! Также возможно, что ключ хоста RSA был только что изменен. Отпечаток ключа RSA, отправленный удаленным хостом, имеет вид fa: 7c: 54: 45: 70: c2: 70: f9: f2: 3c: c9: 75: 4d: 83: 10: 5b. Пожалуйста, обратитесь к системному администратору. Добавьте правильный ключ хоста в /root/.ssh/known_hosts, чтобы избавиться от этого сообщения. Ключ-нарушитель в /root/.ssh/known_hosts:1 Ключ хоста RSA для 192.168.200.122 изменился, и вы запросили строгую проверку. Проверка ключа хоста не удалась. test: ~ / .ssh #

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

Если он не совпадает, то отредактируйте ваши ~ / .ssh / known_hosts и удалите запись для этого хоста. Затем, когда вы снова войдете в систему через ssh, примите его и заново создайте запись known_hosts.

Единственное, что я могу думать о макушке. Надеюсь, что это так!

К сожалению нет. Это также происходит, когда я делаю это вручную. Я даже не могу убить сессию SSH тогда с помощью CTRL + C. Я могу использовать только CTRL + K в моем сеансе экрана, чтобы убить полное окно. И логин и т. Д. Определенно успешны Я могу успешно выполнить команду «остановить». Таким образом, кажется, что машина действительно остановлена ​​(я не могу проверить, потому что это удаленная коробка), но для SSH нет тайм-аута или около того ... divB 9 лет назад 0
Итак, машина останавливается, но вы хотите, чтобы ваш сеанс SSH завершился? Это интересно. Я думаю, что все это может сделать это. Ты в порядке с остановкой в ​​фоновом режиме? Может быть, я неправильно понимаю проблему. Таким образом, команда, которую вы запускаете, это 'остановка &'? ben 9 лет назад 0
Я просто хочу остановить систему через SSH, да. (и это всегда работало до сих пор). Конечно, запуск в фоновом режиме будет найден, но '&', я думаю, не поможет, потому что он все равно получает HUP. divB 9 лет назад 0
0
Roland Smith

Проверьте настройки клиента SSH. TCPKeepAliveне должен быть установлен noдля клиента.

Похожие вопросы