SSH-Portal

Das SSH-Portal ermöglicht es, die eigene VM zu verwalten, ohne den Support kontaktieren zu müssen. Dies ist beispielsweise dann hilfreich, wenn die VM nicht über das Netzwerk erreichbar ist (z.B. wegen Einschalten einer Firewall ohne Ausnahme für SSH), oder wenn ein Neustart von ausserhalb der VM notwendig ist, um eine Erhöhung von RAM oder Speicherplatz anzuwenden.

Verbinden

Um auf das SSH-Portal zuzugreifen, verbindet man sich mit <vmname>@sshportal.sos.ethz.ch. Wenn beispielsweise der Hostname der VM example.vsos.ethz.ch ist, lautet der Befehl ssh example@sshportal.sos.ethz.ch.

Falls nicht die Standard-Keyfile verwendet wird, ist es möglicherweise nötig, die Option -i pfad/zum/private/key anzugeben, damit die korrekte Keyfile verwendet wird.

Beim ersten Verbinden müssen die Host Key Fingerprints überprüft werden. Dazu sucht man in der nachfolgenden Liste den Fingerprint, der vom SSH-Client angezeigt wird, und fügt ihn in die Sicherheitsabfrage ein. Falls es keine Übereinstimmung gibt, ist man möglicherweise einem Man-in-The-Middle-Angriff ausgesetzt.

384 SHA256:p0rVm7ztNmuUBS75M/wWqG49Vy4XF8+eSXLpup0Y8DU ssh_host_ecdsa_key.pub (ECDSA)
256 SHA256:bYhkUA32VVH3Q4IfaLdHk1o4FA0DmLGYfrSxO53m6R0 ssh_host_ed25519_key.pub (ED25519)
4096 SHA256:06sUK5mBDqP3DJDDvImALNJDu20XirK8XoQoDRuQnxA ssh_host_rsa_key.pub (RSA)

Es gibt ein Rate-Limit. Sollte man dieses auslösen, erhält man eine Fehlermeldung ähnlich der Folgenden:

kex_exchange_identification: read: Connection reset by peer
Connection reset by 2001:67c:10ec:49c3::23 port 22

In diesem Fall vor dem nächsten Verbindungsversuch mindestens zehn Sekunden warten.

Sollte man den Fehler “Permission denied” erhalten, kann das mehrere Ursachen haben. Zuerst sollte man sicherstellen, dass man die richtige Keyfile verwendet. Es ist aber auch möglich, dass die VM auf Anfrage der ETH-Informatikdienste abgeschaltet wurde. In diesem Fall sollten genauere Informationen per E-Mail eingetroffen sein.

Falls die VM älter als 5 Jahre ist, fehlen mit hoher Wahrscheinlichkeit interne Informationen und Hardware, die vom SSH-Portal benötigt werden. Um es dennoch nutzen zu können, muss der kontaktiert werden.

Hauptmenü

Die erste Zeile zeigt den Hostnamen der aktuellen VM an. Die Zeile unmittelbar über den Menüoptionen zeigt den Zustand der VM an (running oder stopped).

Folgende Optionen sind verfügbar:

  • Auf die serielle Konsole zugreifen. Andere Sessions, die gerade mit der seriellen Konsole verbunden sind, werden ins Hauptmenü zurückversetzt.
  • Die VM hochfahren, sofern sie nicht bereits läuft.
  • Die VM neu starten. Dies führt zur Nachfrage nach dem Neustart-Modus: Graceful oder forced. Graceful bedeutet, dass die VM sauber heruntergefahren wird. Forced bedeutet, dass die VM sofort abgeschaltet wird (“Reset”). Ein Abbruch ist auch möglich, verhindert aber keine bereits gestarteten Neustartvorgänge.
  • Die VM herunterfahren. Identisch zum Neustart, nur wird die VM danach nicht wieder hochgefahren.
  • authorized_keys einsehen und verwalten
  • Passwort setzen
  • Die Session beenden.
  • Den Zustand der VM neu laden.

Serielle Konsole

Die serielle Konsole ist standardmässig 80 Spalten mal 24 Zeilen gross. Mit dem folgenden Befehl lässt sich die Grösse ändern:

stty cols BREITE rows HÖHE

Dabei müssen BREITE und HÖHE durch die entsprechenden Zahlen ersetzt werden. Alternativ lässt sich auch der resize-Befehl ohne Argumente aus dem xterm-Paket einsetzen.

Es ist normal, dass die Loginabfrage erst erscheint, wenn Enter gedrückt wird.

Der Benutzername ist debian oder ubuntu, je nachdem, welches Betriebssystem gewählt wurde. Um sich anmelden zu können, muss man zuerst ein Passwort setzen.

Es ist möglich, über die serielle Konsole auf das UEFI-Menü zuzugreifen.

Es kann nur eine Session gleichzeitig die serielle Konsole verwenden. Wenn eine andere Session auf die serielle Konsole zugreift, werden alle existierenden Sessions, die ebenfalls mit der seriellen Konsole verbunden sind, ins Hauptmenü zurückversetzt.

Um ins Hauptmenü zurückzukehren, die Tastenkombination Strg-] drücken.

Hinweis: Es erfolgt keine automatische Abmeldung aus der Shell! Vorher manuell den exit-Befehl verwenden.

Key Management

Veränderungen, die in diesem Menü getätigt werden, sind für das SSH-Portal selbst sofort aktiv. Bitte vor dem Ausloggen vergewissern, ob der Login mit einem zweiten Clientfenster noch erfolgreich ist.

Die Änderungen werden nicht sofort innerhalb der VM angewendet, ein Neustart ist erforderlich. Dabei werden Schlüssel der authorized_keys-Datei in der VM nur hinzugefügt, aber niemals entfernt - dies muss manuell geschehen. Schlüssel, die im SSH-Portal vorhanden sind, nicht aber auf der VM, werden auf der VM hinzugefügt, unabhängig davon, welche Änderungen vorgenommen wurden. Um zu verhindern, dass dies unerwartet geschieht, müssen Schlüssel also immer sowohl aus dem SSH-Portal als auch aus der authorized_keys-Datei auf der VM gelöscht werden.

Jede Veränderung führt dazu, dass die Host Keys beim nächsten Neustart neu generiert werden, sie müssen also beim nächsten Verbindungsversuch per SSH direkt auf die VM neu überprüft werden.

SSH-Keys mit Zusatzoptionen (z.B. from für IP-Adress-Filterung) können zur Zeit nicht für die Anmeldung am SSH-Portal verwendet werden.

Die Reihenfolge der SSH-Keys in der Auflistung ist zufällig.

Es ist nicht möglich, den gleichen Schlüssel doppelt hinzuzufügen.

Das System unterscheidet zwischen Nutzer- und Supportschlüsseln. Nutzerschlüssel werden beim Beantragen der VM oder über das SSH-Portal angegeben, wohingegen der Supportschlüssel bei der Erstellung der VM automatisch hinzugefügt wird. Der Supportschlüssel gibt VSOS-Admins Zugriff auf die VM, wenn nach Unterstützung gefragt wurde, und kann entfernt werden. Möchte man ihn wieder hinzufügen, verwendet man hierzu den Menüpunkt Grant support access.

Die Option Remove key stellt sicher, dass immer mindestens ein Nutzerschlüssel vorhanden ist, um ein versehentliches Aussperren zu verhindern. Dies kann trotzdem geschehen, wenn man den Zugriff auf alle aktiven Nutzerschlüssel verloren hat. In einem solchen Fall muss mit dem Kontakt aufgenommen werden.

Passwort

Diese Aktion betrifft den debian- oder ubuntu-Account, je nach Betriebssystem der VM.

Zum Anmelden auf der seriellen Konsole muss ein Passwort gesetzt sein. Wenn der Menüpunkt ausgewählt wird, erwartet das SSH-Portal die Eingabe eines neuen Passwortes und eine Wiederholung. Das Passwort wird nicht angezeigt, auch nicht mit Sternchen.

Das neue Passwort wird mit dem nächsten Neustart angewendet, und die SSH Host Keys werden neu generiert und müssen beim nächsten SSH-Verbindungsversuch direkt auf die VM überprüft werden.

Auf der VM muss cloud-init installiert sein, damit das Setzen des Passwortes funktioniert. Bei unseren offiziellen Images für Debian oder Ubuntu ist dies bereits der Fall. Wer das Betriebssystem manuell überschreibt, muss sich selbst um die Einrichtung kümmern.

SSH Host Key Regeneration

Wenn Änderungen an authorized_keys oder dem Passwort bei einem Neustart angewendet werden, erfolgt auch eine Löschung und Neuerzeugung der SSH Host Keys der VM. Dies ist eine Eigenheit von cloud-init.

Der SSH-Client zeigt beim nächsten Verbindungsversuch eine Sicherheitswarnung an. Die alten Fingerprints müssen mit Hilfe der Warnmeldung aus ~/.ssh/known_hosts entfernt werden. Danach verbindet man sich erneut und überprüft die neuen Host Keys.

Hierzu führt man folgende Befehle über die serielle Konsole aus:

ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -l -f /etc/ssh/ssh_host_ed25519_key
ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key

In den Ausgaben sucht man nach einer Übereinstimmung mit dem Fingerprint, der vom SSH-Client angezeigt wird, und fügt ihn in die Sicherheitsabfrage des Clients ein. Falls es keine Übereinstimmung gibt, ist mit hoher Wahrscheinlichkeit eine Man-in-The-Middle-Attacke im Gange, und der Verbindungsversuch sollte abgebrochen werden.

UEFI-Zugriff

Die serielle Konsole ermöglicht den Zugriff auf das UEFI-Menü der VM. Dies ist nur dann nützlich, wenn vom VSOS-Support ein zweites bootbares Speichermedium angeschlossen wurde (beispielsweise zu Wiederherstellungszwecken) und man zwischen den Bootmedien wechseln möchte.

Hierzu startet man zuerst die VM, navigiert anschliessend sofort zu seriellen Konsole und drückt wiederholt die ESC-Taste, bis das Menü erscheint. Bei Schwierigkeiten kann es helfen, die VM aus einer Session zu starten, und auf einer anderen Session die serielle Konsole zu starten.