Jakie ryzyko wiąże się z aktualizacją przez SSH?

75

Kiedy biegnę

sudo do-release-upgrade

przez ssh, otrzymuję następujący komunikat.

Wygląda na to, że ta sesja działa w ssh. Nie jest to zalecane
wykonać obecnie aktualizację w stosunku do ssh, ponieważ w przypadku awarii to
trudniej jest odzyskać.

Jeśli będziesz kontynuować, na porcie zostanie uruchomiony dodatkowy demon ssh
„9004”.
Czy chcesz kontynuować?

Jakie jest realne ryzyko aktualizacji w stosunku do ssh? W jaki sposób dodatkowy demon ssh pomaga to złagodzić?

Krzyż
źródło

Odpowiedzi:

56

To, co poleciłbym zrobić, to uruchomienie sesji ekranowej na serwerze i uruchomienie aktualizacji ekranowej - w ten sposób, jeśli sesja SSH spadnie (z jakiegokolwiek powodu) proces aktualizacji nie zostanie zatrzymany.

Screen to program, który pozwala na utrzymywanie stałych terminali na komputerze. Możesz więc rozpocząć sesję ekranową i tak długo, jak komputer jest w tej sesji (i jej historia, uruchomione programy itp.) Będzie działał, chociaż na komputerze nie ma żadnego użytkownika. Został zaprojektowany we wczesnych dniach, aby udostępnić terminal tekstowy z wieloma oknami przed dniami X Server. Możesz go zainstalować za pomocą APT:

sudo apt-get install screen

Możesz więc ssh na swoim serwerze, ekranie startowym, zainicjować proces aktualizacji i nie musisz się martwić, że aktualizacja zostanie spartaczona, ponieważ straciłeś połączenie z Internetem lub komputer się zawiesił.

Marco Ceppi
źródło
1
Ekran jest doskonałym narzędziem w tej sytuacji.
Ryan Thompson
7
Wygląda na to, że do-release-upgrade(ponieważ precyzyjne) wykonuje się automatycznie screen.
manu
2
ekran nie jest już dostępny i z jakiegoś powodu nie działa z TMUX. Zwraca ten błąd: === Polecenie zakończone ze statusem wyjścia 1 (Śr 19 października 21:14:13 2016) ===
Gman Smith
screen -dmS do-release-upgrade->, screen -raby przejść do ekranu uruchamiania -> Ctrl + A, Ctrl + D, aby pozostawić ekran działający w tle i wrócić do ekranu głównego
Ryan Allen
83

@ Rozwiązanie Marco-Ceppi jest już zintegrowane z do-release-upgrade.

Po uruchomieniu do-release-upgradeautomatycznie rozpoczyna się sesja ekranowa. Jeśli sesja ssh zostanie rozłączona, możesz wznowić instalację. Wszystko, co musisz zrobić, to otworzyć nową sesję ssh i uruchomić do-release-upgradeponownie. Połączy się ponownie z poprzednią instalacją.

Drugie ryzyko, na które wskazuje @ sepp2k, polega na tym, że serwer sshd może wymagać aktualizacji i być może nie uruchomi się ponownie poprawnie. Dlatego program aktualizacyjny uruchamia drugi demon na podanym porcie. Przed wznowieniem należy sprawdzić konfigurację sieci, aby upewnić się, że masz dostęp przez ten port.

Powodzenia.

Co więcej, sesja ekranowa do-release-upgraderozpoczyna się sama z poziomu konta root, więc jeśli twoja własna sesja ekranowa ulegnie awarii, będziesz mógł ją odzyskać, uruchamiając ją sudo screen -x, jeśli (z jakiegoś powodu) polecenie jej do-release-upgradenie odzyska, co wydaje się być powszechne.

jarondl
źródło
1
Czy wiesz, z której wersji Ubuntu tak było? Próbuję przeprowadzić aktualizację z wersji 9.10 i po uruchomieniu aktualizacji ( sudo do-release-upgrade) i odpowiedzi „Tak”, mogę połączyć się z ssh na porcie 9004, ale screenpodczas próby nie ma żadnych sesji sudo screen -list . (PS Nie jestem jeszcze w fazie pobierania.)
mgd
7
Po aktualizacji z 9.10 do 10.04 LTS (gdzie do-release-upgradenie rozpoczął sesji ekranowej), teraz aktualizuję z 10.04 LTS do 12.04 LTS i teraz do-release-upgradeteraz automatycznie rozpoczyna sesję ekranową.
mgd
2
Zasadniczo więc do-release-upgradezadbaj o wszystko wcześniej, a następnie: 1) możesz ponownie połączyć się ze zepsutym ssh poprzez ponowne uruchomienie do-release-upgradepo ponownym zalogowaniu i 2) możesz ponownie zalogować się po nieudanej aktualizacji sshd przez port określony na początku przez do-release-upgrade. Czy to to ?
Juh_
5
ekran sudo -x uratował mi życie! Dzięki.
Felipe
4
Dlaczego więc komunikat ostrzegawczy nadal tam jest? Brzmi bardzo złowieszczo.
Jahmic
17

Jeśli w ramach aktualizacji zostanie zainstalowana nowa wersja demona ssh, demon zostanie zrestartowany. Jeśli z jakiegoś powodu aktualizacja zepsuje demona, nie uruchomi się ponownie i nie będzie już możliwości zalogowania się na maszynie.

Uruchamiając osobny sshd, który nie jest obsługiwany przez system init, a zatem nie zostanie zrestartowany podczas aktualizacji, zapewnia się, że stara wersja sshd będzie nadal działać, nawet jeśli nowa wersja nie uruchomi się. W ten sposób nadal możesz zalogować się do systemu i zobaczyć, co spowodowało uszkodzenie demona.

sepp2k
źródło
1
Myślę, że bardziej istotne jest to, że po ponownym uruchomieniu demona aktualizacja prawdopodobnie zostanie zakończona niedokończona, ponieważ proces działa w sesji ssh.
Malabarba,
3

Nigdy (jeszcze) nie miałem z tym problemu, chociaż w ten sposób zmodernizowałem tylko pół tuzina pudeł. Chodzi o to, że jeśli coś pójdzie nie tak, dodatkowy demon SSH może być Twoją jedyną nadzieją na uniknięcie wizyty (lub skorzystanie z wszelkich dostępnych opcji ponownej instalacji).

Cry Havok
źródło