Was ist das Risiko eines Upgrades über SSH?

75

Wenn ich renne

sudo do-release-upgrade

über ssh bekomme ich folgende nachricht.

Diese Sitzung scheint unter ssh zu laufen. Es wird nicht empfohlen
ein Upgrade über ssh derzeit durchführen, weil im Falle eines Fehlers es
ist schwerer zu erholen.

Wenn Sie fortfahren, wird ein zusätzlicher ssh-Daemon am Port gestartet
'9004'.
Möchtest du weiter machen?

Was ist das wahre Risiko eines Upgrades über ssh? Wie kann der zusätzliche ssh-Daemon dies verhindern?

Kreuz
quelle

Antworten:

56

Ich würde empfehlen, eine Bildschirmsitzung auf dem Server zu starten und das Upgrade auf dem Bildschirm auszuführen. Auf diese Weise wird der Upgrade-Prozess nicht angehalten, wenn Ihre SSH-Sitzung (aus welchen Gründen auch immer) unterbrochen wird.

Screen ist ein Programm, das permanente Terminals auf einem Computer ermöglicht. Sie können also eine Bildschirmsitzung starten, und solange sich der Computer in dieser Bildschirmsitzung befindet (und der Verlauf, das Ausführen von Programmen usw.), wird der Betrieb fortgesetzt, obwohl sich kein Benutzer auf dem Computer befindet. Es wurde in den frühen Tagen entwickelt , um ein Textterminal mit mehreren Fenstern vor den Tagen von X Server bereitzustellen. Sie können es mit APT installieren:

sudo apt-get install screen

So können Sie auf Ihren Server zugreifen, den Bildschirm starten, den Upgrade-Vorgang einleiten und müssen sich keine Sorgen mehr machen, dass das Upgrade verpfuscht wird, weil Sie die Internetverbindung verloren haben oder Ihr Computer abgestürzt ist.

Marco Ceppi
quelle
1
Bildschirm ist ein hervorragendes Werkzeug für diese Situation.
Ryan Thompson
7
Es scheint, dass do-release-upgrade(da präzise) automatisch ausgeführt wird screen.
Manu
2
Bildschirm ist nicht mehr verfügbar, und dies scheint aus irgendeinem Grund nicht mit TMUX zu funktionieren. Dieser Fehler wird zurückgegeben: === Der Befehl wurde mit dem Beendigungsstatus 1 (Mi., 19. Oktober, 21:14:13 Uhr 2016) beendet ===
Gman Smith,
screen -dmS do-release-upgrade-> screen -rum zum laufenden Bildschirm zu wechseln -> Strg + A, Strg + D, um den Bildschirm im Hintergrund laufen zu lassen und zum Hauptbildschirm zurückzukehren
Ryan Allen
83

@ Marco-Ceppis Lösung ist bereits in integriert do-release-upgrade.

Beim Ausführen do-release-upgradewird automatisch eine Bildschirmsitzung gestartet. Wenn Ihre SSH-Sitzung getrennt wird, können Sie die Installation fortsetzen. Sie müssen lediglich eine neue ssh-Sitzung öffnen und do-release-upgradeerneut ausführen . Die Verbindung zu Ihrer vorherigen Installation wird wiederhergestellt.

Ein zweites Risiko, auf das @ sepp2k hingewiesen hat, besteht darin, dass Ihr sshd-Server möglicherweise aktualisiert werden muss und möglicherweise nicht ordnungsgemäß neu gestartet werden kann. Aus diesem Grund führt das Upgrade-Programm einen zweiten Deamon am angegebenen Port aus. Sie sollten Ihre Netzwerkkonfiguration überprüfen, um sicherzustellen, dass Sie über diesen Port Zugriff haben, bevor Sie fortfahren.

Viel Glück.

Darüber hinaus wird die do-release-upgradevon selbst gestartete Bildschirmsitzung unter dem Root-Konto ausgeführt. Wenn Ihre eigene Bildschirmsitzung abstürzt, können Sie sie durch Ausführen wiederherstellen sudo screen -x, wenn der Befehl do-release-upgradesie (aus irgendeinem Grund) nicht von selbst wiederherstellt. das scheint üblich zu sein.

jarondl
quelle
1
Wissen Sie, ab welcher Ubuntu-Version dies der Fall war? Ich versuche, ein Upgrade von 9.10 durchzuführen, und nachdem ich das Upgrade ( sudo do-release-upgrade) gestartet und mit "Ja" geantwortet habe, kann ich über Port 9004 eine Verbindung zu ssh herstellen, aber screenbeim Versuch werden keine Sitzungen aufgelistet sudo screen -list . (PS: Ich habe die Download-Phase noch nicht abgeschlossen.)
14.
7
Nach dem Upgrade von 9.10 auf 10.04 LTS (wo do-release-upgradekeine Bildschirmsitzung gestartet wurde) aktualisiere ich jetzt von 10.04 LTS auf 12.04 LTS und starte do-release-upgradejetzt automatisch eine Bildschirmsitzung.
14.
2
Im Grunde genommen müssen do-release-upgradeSie sich also vorher um alles kümmern. Dann: 1) Sie können die Verbindung von einem defekten SSH wiederherstellen, indem Sie do-release-upgradenach der erneuten Protokollierung erneut ausführen, und 2) Sie können eine fehlgeschlagene SSHD-Aktualisierung über den von angegebenen Port erneut protokollieren do-release-upgrade. Ist es das ?
Juh_
5
sudo screen -x hat mir das Leben gerettet! Vielen Dank.
Felipe
4
Warum ist die Warnmeldung dann noch da? Klingt sehr bedrohlich.
Jahmic
17

Wenn im Rahmen des Upgrades eine neue Version des ssh-Dämons installiert wird, wird der Dämon neu gestartet. Wenn das Update den Daemon aus irgendeinem Grund unterbricht, kann er nicht erneut gestartet werden und Sie haben keine Möglichkeit mehr, sich auf dem Computer anzumelden.

Durch das Starten einer separaten SSHD, die nicht vom Init-System verarbeitet und daher während des Upgrades nicht neu gestartet wird, wird sichergestellt, dass die alte Version von SSHD weiterhin ausgeführt wird, auch wenn die neue Version nicht gestartet werden kann. Auf diese Weise können Sie sich immer noch beim System anmelden und sehen, warum der Dämon abstürzt.

sepp2k
quelle
1
Ich halte es für relevanter, dass Ihr Upgrade nach dem Neustart des Daemons wahrscheinlich ohne Abschluss beendet wird, da der Prozess in der ssh-Sitzung ausgeführt wird.
Malabarba
3

Ich hatte (noch) nie ein Problem damit, obwohl ich nur ein halbes Dutzend Boxen auf diese Weise aufgerüstet habe. Es ist nur so, dass der zusätzliche SSH-Daemon Ihre einzige Hoffnung ist, einen Besuch zu vermeiden (oder die von Ihnen zur Verfügung gestellten Optionen für die Remote-Neuinstallation zu nutzen), wenn etwas schief geht.

Schrei Havok
quelle