Google Compute Engine SSH - Anderer Benutzername nach dem Umschalten auf OS Login

755
Wil Koetsier

Ich habe eine Compute Engine-VM (Ubuntu 18.04) erstellt, und wenn ich mich mit der Schaltfläche SSH in der VM-Instanzenliste anmelde, bin ich als Benutzer angemeldet username.

Nach einer Weile wurde mir klar, dass ich auch einen anderen SSH-Client verwenden konnte. Gemäß https://cloud.google.com/compute/docs/instances/connecting-advanced habe ich die BS-Anmeldung aktiviert, indem in den Metadaten ein Schlüssel-Wert-Paar hinzugefügt wurde, wobei Schlüssel enable-osloginund Wert stehen TRUE.

Ich habe dann versucht, meinen vorhandenen SSH-Schlüssel hinzuzufügen:

gcloud compute os-login ssh-keys add --key-file path/to/key.pub --ttl 0

Das war bis auf ein großes Problem erfolgreich: Es hat den Schlüssel für den Benutzer hinzugefügt username_gmail_comund ich kann nur noch als VM auf diesem Computer ssh anzeigen:

ssh username_gmail_com@myinstance

Außerdem wurde dieser Benutzer auf meiner VM erstellt. Über die Weboberfläche bin ich auch mit diesem neuen Benutzer an der VM angemeldet ( /home/username_gmail_com). Natürlich kann ich weiterhin auf die Daten des ursprünglichen Benutzers zugreifen ( /home/username). Wenn ich OS Login deaktiviert habe, meldet mich das Webinterface usernameerneut als an und SSH von einem anderen Client ist deaktiviert.

  1. Warum unterscheidet sich der Benutzername bei der Aktivierung des Betriebssystem-Login?
  2. Kann ich den Benutzernamen bei aktiviertem OS Login ändern?

Bearbeiten

In den Dokumenten wurde eine Ergänzung hinzugefügt, die genau diese Frage erklärt. Überprüfen Sie hier: https://cloud.google.com/compute/docs/oslogin/ und auf der oben genannten Seite ganz unten unter "Erwartete Anmeldeverhalten".

0

3 Antworten auf die Frage

0
Wil Koetsier

Ich habe diese Frage hier gestellt und eine klare Antwort erhalten.

Warum unterscheidet sich der Benutzername zwischen aktiviertem und deaktiviertem Betriebssystem-Login?

Beim Betriebssystem-Login wird Ihr Linux-Benutzerkonto mit Ihrer Google-Identität verknüpft, sodass Sie auf jedem virtuellen Computer, auf dem Sie sich anmelden, einen konsistenten Benutzernamen, eine UID und andere Posix-Informationen haben.

[...]

Um Eindeutigkeitskonflikte in verschiedenen Organisationen (user@gmail.com und user@example.com) zu vermeiden, ist der Domänenname standardmäßig enthalten.

[...]

Wenn die Betriebssystemanmeldung nicht aktiviert ist, wird der Benutzername in Ihrem SSH-Schlüssel festgelegt, der keine Verbindung zur Google-Identität eines Benutzers hat. Der Benutzername wird so generiert, dass er bequem ist, und es gibt keine Probleme, die sich auf das Betriebssystem-Login beziehen.

Und kann ich den Benutzernamen beeinflussen, wenn das Betriebssystem-Login aktiviert ist?

Die Posix-Informationen sind für Consumer-Identitäten (Benutzer von Nicht-G Suite) unveränderlich.

Nein, ich kann nicht, weil ich eine Einzelperson bin und keine Organisation.

Am Ende habe ich die Unannehmlichkeiten gelöst, die mir dadurch entstanden sind, dass der Server mit aktiviertem OS Login einfach neu erstellt wurde. Dies ist natürlich eine der Stärken der Compute Engine.

0

Wenn Sie Ihren ssh-key innerhalb von Meta-Daten hinzugefügt haben, sollten Sie in der Instanz mit dem folgenden Befehl auf das Root-Konto zugreifen können:

sudo -i 

Unter root können Sie auf den Ordner / home / username zugreifen und die erforderlichen Dateien übertragen.

Danke für deine Antwort. Natürlich kann ich Sudo Dateien zwischen meinen 2 Benutzern übertragen, aber das ist zu lästig (vor allem, wenn es sich nicht um mich handelt, sagen wir, eine Fabdatei). Stattdessen sollte ich in der Lage sein, ssh an meinen ersten Benutzer zu senden, und der zweite hätte es überhaupt nicht geben dürfen. Von meiner lokalen Konsole aus logge ich mich mit dem neuen Nutzernamen ein, während sich die Google-Konsole (Weboberfläche) mit meinem ursprünglichen Nutzernamen anmeldet! Ich möchte das korrigieren, damit ich mich von meiner lokalen Konsole aus mit meinem ursprünglichen Benutzernamen anmelden kann. Wil Koetsier vor 5 Jahren 0
Das ist schwierig ... Sie könnten versuchen, die Google-Metadaten auszutricksen, indem Sie den Benutzernamen am Ende Ihres SSH-Schlüssels mit dem ersten Benutzernamen aktualisieren und sehen, ob Sie sich in demselben Benutzer anmelden. vor 5 Jahren 0
Ich werde es versuchen. Inzwischen hat sich Google dazu entschieden, sich auch mit dem neuen Nutzernamen anzumelden - ??? es hat etwas damit zu tun, dass OS Login auf TRUE gesetzt ist. Warum das zu einem anderen Benutzernamen wechselt, ist mir ein Rätsel. Wil Koetsier vor 5 Jahren 0
Es hat nicht funktioniert, die Schlüssel in Compute -> Metadata -> Keys können nicht bearbeitet werden. Bitte sehen Sie auch die Bearbeitung in meiner Frage. Wil Koetsier vor 5 Jahren 0
Sie können den Schlüssel nicht bearbeiten. Sie müssen einen neuen hinzufügen, damit dies funktioniert vor 5 Jahren 0
0

Gemäß diesem github- Dokument ruft das Betriebssystemanmeldungspaket ( Gastumgebung in der Instanz) SSH-Schlüssel aus dem Betriebssystemanmeldeprofil des Benutzers ab und stellt sie für sshd zur Verfügung. Dabei muss jedoch der Metadatenserver nach dem Profil abgefragt und die Berechtigung des Benutzerkontos (E-Mail-Adresse) überprüft werden.

Wie weiter zu erklären, wenn Tools von Drittanbietern zu SSH verwenden, die traditionelle Art und Weise Benutzer auf die Instanz hinzuzufügen, ist durch das Erstellen und Hinzufügen von öffentlichen Schlüsseln für jeden Benutzer der Metadaten oder Projektes Instanz, und nach diesem Dokument .

Bei der Betriebssystemanmeldung werden jedoch IAM-Rollen der Compute Engine zum Verwalten von SSH-Schlüsseln verwendet. Das bedeutet, dass jeder Benutzer, dem SSH-Zugriff auf die Instanz gewährt werden muss, über ein Google-Konto (E-Mail) verfügen muss. Das Konto sollte Mitglied des Projekts sein und über die richtigen IAM-Rollen der Compute Engine verfügen (z compute.oslogin. B. ).

Wenn der in der obigen github-Verknüpfung beschriebene Vorgang zum ersten Mal ausgeführt wird, wird ein Benutzer erstellt, der das Format des Kontos (E-Mail) erbt user_lastname_gmail_com. Für weitere Informationen zum Betriebssystem-Login können Sie dieses Dokument überprüfen

Danke, dass Sie mich auf das Repo von Github aufmerksam gemacht haben. Die anderen 2 Dokumente, die ich bereits gelesen hatte (immer und immer wieder). Keines davon erklärt, warum das Kontoformat als user_gmail_com und nicht nur als Benutzer verwendet wird. Die Tatsache, dass dies der Fall ist, wird nirgends erwähnt und auch nicht, wie der von OS Login verwendete Benutzername beeinflusst werden kann. Warum wird dies auch von OS Login durchgeführt, nicht aber, wenn OS Login deaktiviert ist (mit demselben Google-Konto)? Hast du irgendeine Idee? Wil Koetsier vor 5 Jahren 0
@WilKoetsier Wenn Sie OS Login verwenden, möchten Sie den Benutzerzugriff über IAM steuern, sodass Sie jeden Benutzer zum Projekt hinzufügen. Sie können Benutzernamen nicht ändern, da diese von IAM extrahiert werden. Wenn die Betriebssystemanmeldung deaktiviert ist, können Sie jeden beliebigen Benutzernamen verwenden. Wenn Sie beispielsweise SSH über den Browser verwenden und auch wenn Sie mit Ihrem Konto beim Projekt angemeldet sind, können Sie „Linux-Benutzernamen ändern“ ändern, indem Sie auf das Setup-Symbol oben rechts im Fenster klicken. Weitere Informationen zum Verhalten des Daemon-Kontos in diesem [github] (https://github.com/GoogleCloudPlatform/compute-image-packages#accounts) vor 5 Jahren 0
Sie können auch eine Verbesserung des [OS Login-Dokuments] (https://cloud.google.com/compute/docs/instances/managing-instance-access) anfordern, indem Sie auf die Feedback-Schaltfläche oben auf der Seite klicken. Wie ich bereits erwähnte, ist das E-Mail-Format ein Standard, und Sie können dieses Verhalten nicht ändern. In Ihrem Feedback können Sie auch die Verwendung von Benutzernamen verlangen, wenn Sie OS Login als neue Funktion verwenden. Darüber hinaus können Sie Ihre Frage auf serverfault.com als Alternative zu Superuser erneut veröffentlichen vor 5 Jahren 0