Ich habe eine brandneue Google Compute Engine-VM (Debian 9) erstellt und eine Shell mit der GoogleCloud-Shell geöffnet. ich kann sudo
aus diesem Browser-Shell-Fenster.
Ich stelle dann meine SSH-Schlüssel und SSH in die VM ein. Meiner Meinung nach ist mein Benutzername "user123". Ich ssh in meine GCP vm mit:
Wobei 1.2.3.4 meine externe GCP-Adresse ist. Ich bin dann eingeloggt.
Also als benutzer user123
im GoogleCloudShell sudo
funktioniert, aber wenn über eingeloggt ssh wie user123
Ich werde nach einem Passwort gefragt.
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for user123:
Natürlich will oder muss ich kein Passwort einrichten, ich brauche Sudo, um dies zuzulassen user123
Benutzerkonto an Sudo. Aber es funktioniert, wenn Sie bei GoogleCloudShell angemeldet sind.
HINWEIS: Da ich root in meinem habe GoogleCloudShell (via sudo) sollte ich finden können, was ich tun muss, und dies beheben.
Was ist der nächste Schritt, den ich machen muss, damit sudo funktioniert, wenn ich über ssh angemeldet bin?
sudo
nachdem ich ssh in die vm benutzt ssh user123 @ gcp-host sowie aus der GoogleCloudShell. Ich könnte diese Frage löschen, wenn niemand sie für nützlich hält.sudo
wenn von angemeldet ssh .Antworten:
Ich gebe dir 2 Antworten.
Erstens verwaltet die Cloud-Shell Instanz-Metadaten für Sie hinter den Kulissen und ermöglicht kennwortloses Sudo für alle Benutzer, die auf diese Weise zum Projekt hinzugefügt werden. Verwenden Sie Google, um Ihren Benutzer einzurichten
https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys https://cloud.google.com/compute/docs/instances/managing-instance-access
Fügen Sie das gewünschte Benutzerkonto über die Projektkonsole hinzu. Dadurch wird dieser Benutzer an alle Hosts in Ihrem Projekt weitergegeben.
Zweitens: Sie möchten passwortloses Sudo einrichten. Sie können (mit visudo) / etc / sudoers bearbeiten oder eine neue Datei unter /etc/sudoers.d erstellen und eine Zeile wie diese hinzufügen:
Sie können sehen, dass Google dies nach Gruppenmitgliedschaft in der Google-Sudoers-Gruppe durchführt
quelle
Nach dem Erstellen einer GCP-Berechnungs-Engine müssen Sie nichts Besonderes tun, damit Sudo von ssh zum Laufen gebracht wird. Sie müssen natürlich die GCP-Konsole verwenden und Ihre Schlüssel hinzufügen, wie @TimmyBrowne in seinem Beitrag erwähnt. Sehen https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys .
Nachdem Sie Ihren öffentlichen SSH-Schlüssel in die GCP Compute Engine-Instanz eingegeben haben, können Sie SSH in Ihre Instanz eingeben. Sie müssen jedoch den richtigen Benutzernamen verwenden.
Wenn mein GCP-Benutzername beispielsweise fredsmith lautet und meine externe GCP-IP 5.6.7.8 lautet, würde mein Befehl ssh folgendermaßen aussehen:
ssh [email protected]
Natürlich muss Ihr privater SSH-Schlüssel mit dem öffentlichen Schlüssel übereinstimmen, den Sie in die SSH-Metadaten für Ihre Instanz einfügen.
Nachdem Sie sich angemeldet haben, können Sie sudo ausführen, und es funktioniert, weil GCP diese Instanz bereits mit Ihren Anmeldeinformationen (fredsmith) eingerichtet hat und Sie (fredsmith) in die Gruppen aufgenommen hat, damit sudo funktioniert, was für GCP scheinbar google-sudoers ist.
Wenn Sie einen anderen Benutzer erstellen möchten und diesem Benutzer Sudo-Berechtigungen gewähren möchten, lesen Sie die Antwort von @TimmyBrowne.
Ich bin immer noch nicht sicher, warum ich inkonsistente Ergebnisse hatte. Manchmal konnte ich sudo und andere Male konnte ich nicht, weil meine authorized_keys-Datei entfernt wurde, aber ich habe nicht genügend Informationen, um dies weiter zu verfolgen.
Da Timmy Browne meine Frage so beantwortet hat, wie er sie verstanden hat, und es scheint richtig zu sein. Ich werde ihm diese Antwort würdigen, aber ich wollte meine Antwort posten, damit andere, wenn sie dasselbe Verhalten sehen, diese Antwort bestätigen und hoffentlich können wir sie finden.
quelle