Який ризик оновлення над SSH?


75

Коли я біжу

sudo do-release-upgrade

над ssh, я отримую таке повідомлення.

Схоже, цей сеанс працює під ssh. Не рекомендується
здійснити оновлення над ssh в даний час, тому що в разі його відмови
важче відновитись.

Якщо ви продовжите, в порту буде запущено додатковий демон ssh
'9004'.
Ви хочете продовжити?

Який реальний ризик оновлення над ssh? Як додатковий демон SSH допомагає пом’якшити це?

Відповіді:


56

Що я б рекомендував зробити, це запустити сеанс на екрані на сервері та запустити оновлення на екрані - таким чином, якщо ваш сеанс SSH перестане (з будь-якої причини) процес оновлення не зупиниться.

Екран - це програма, яка забезпечує постійні термінали на машині. Таким чином, ви можете розпочати сеанс на екрані і до тих пір, поки машина знаходиться на цьому екранній сесії (і це історія, запущені програми тощо) буде продовжувати працювати, хоча ніхто не користується машиною. Він був розроблений в перші дні, щоб забезпечити багатовіконний текстовий термінал до днів X Server. Ви можете встановити його за допомогою APT:

sudo apt-get install screen

Таким чином, ви можете запустити на свій сервер, на екран запуску, ініціювати процес оновлення, і не потрібно турбуватися про оновлення Bing, оскільки ви втратили з’єднання з Інтернетом або ваш комп'ютер вийшов з ладу.


1
Екран - чудовий інструмент для цієї ситуації.
Райан Томпсон

7
Здається, що do-release-upgrade(оскільки точно) виконується автоматично screen.
март

2
екран більше не доступний, і це, здається, не працює з TMUX чомусь. Він повертає цю помилку: === Команда припинена зі статусом виходу 1 (ср. Жовт. 19 21:14:13 2016) ===
Gman Smith

screen -dmS do-release-upgrade-> screen -rдля переходу на запущений екран -> Ctrl + A, Ctrl + D, щоб екран залишався у фоновому режимі і повертався на головний екран
Ryan Allen

83

@ Рішення Марко-Цеппі вже інтегровано do-release-upgrade.

При запуску do-release-upgradeвін автоматично запускає екранний сеанс. Якщо ваш сеанс ssh буде відключений, ви можете відновити встановлення. Все, що вам потрібно зробити, - це відкрити новий сеанс ssh і запустити do-release-upgradeзнову. Він відновиться до попередньої установки.

Другий ризик, на який вказує @ sepp2k, полягає в тому, що ваш sshd-сервер може потребувати оновлення, і він, можливо, може не перезапуститись належним чином. Тому програма оновлення виконує другий діамант у вказаному порту. Ви повинні перевірити конфігурацію мережі, щоб переконатися, що ви маєте доступ через цей порт, перш ніж відновити.

Удачі.

Більше того, сеанс екрана, який do-release-upgradeпочинається сам по собі, запускається під кореневим обліковим записом, тому, якщо ваша власна сеанс екрану вийде з ладу, ви зможете відновити запуск sudo screen -x, якщо команда (з якихось причин) команда do-release-upgradeне відновить її самостійно, що здається загальним.


1
Чи знаєте ви, з якої версії Ubuntu це було так? Я намагаюся оновити з 9.10, і після запуску оновлення ( sudo do-release-upgrade) та відповіді "Так" я можу підключитися до ssh на порту 9004, але screenпри спробі не вказано сеансів sudo screen -list . (PS Я ще не минув етап завантаження.)
mgd

7
Після оновлення з 9.10 до 10.04 LTS (де do-release-upgradeне почався екранний сеанс) я зараз переходжу з 10.04 LTS до 12.04 LTS і тепер do-release-upgradeавтоматично запускається сеанс екрана.
мгд

2
Отже, do-release-upgradeпотурбуйтеся про все, що передує, тоді: 1) ви можете підключитися зі зламаним ssh шляхом повторного запуску do-release-upgradeпісля повторного входу в систему і 2) ви можете повторно увійти з невдалого оновлення sshd через порт, зазначений на початку, do-release-upgrade. Це все ?
Juh_

5
екран sudo -x врятував мені життя! Дякую.
Феліпе

4
Тоді чому попереджувальне повідомлення все ще є? Звучить дуже зловісно.
Яхміч

17

Якщо в рамках оновлення встановлена ​​нова версія демона ssh, демон буде перезапущений. Якщо оновлення з якихось причин зламає демон, воно не вдасться запуститися знову, і ви більше не матимете можливості ввійти в машину.

Запустивши окремий sshd, який не обробляється системою init і, таким чином, не буде перезапущено під час оновлення, гарантується, що стара версія sshd все ще буде працювати, навіть якщо нова версія не запуститься. Таким чином, ви все ще можете увійти в систему і побачити, що призвело до того, що демон зламався.


1
Я думаю, що більш релевантним є те, що при перезапуску демона оновлення, ймовірно, буде закінчено незавершеним, оскільки процес працює на сеансі ssh.
Малабарба

3

У мене ніколи (ще) не виникало проблем з цим, хоча я лише модернізував півтора десятка ящиків таким чином. Просто якщо щось піде не так, додатковий демон SSH може бути вашою єдиною надією уникнути відвідування (або використовувати будь-які варіанти віддаленої повторної установки).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.