Teil 1: SSH-Schlüssel ohne Passwort

Teil 1: SSH-Schlüssel ohne Passwort

Ich muss eine Maschine so konfigurieren, dass die Softwareinstallation remote über SSH automatisiert werden kann.das Wikikonnte ich SSH-Schlüssel einrichten, sodass mein Benutzer ohne Kennwort auf die Maschine zugreifen kann, aber ich muss mein Kennwort immer noch manuell eingeben, wenn ich verwende sudo, was bei einem automatisierten Prozess offensichtlich nicht nötig sein sollte.

Obwohl mein /etc/ssh/sshd_configüber verfügt PermitRootLogin yes, kann ich mich scheinbar nicht als Root anmelden, vermutlich weil es sich nicht um ein „echtes“ Konto mit einem separaten Passwort handelt.

Wie konfiguriere ich SSH-Schlüssel, sodass sich ein Prozess bei Ubuntu remote als Root anmelden kann?

Antwort1

Teil 1: SSH-Schlüssel ohne Passwort

Um eine passwortlose SSH-Verbindung für den Root-Benutzer einzurichten, benötigen Sie Root-Zugriff auf den Server. Die einfachste Methode istvorübergehendErlauben Sie Root, sich über SSH mit einem Passwort anzumelden. Sie benötigen dazu auf jeden Fall Root-Zugriff auf den Server. Wenn Sie keinen Root-Zugriff auf den Server haben, wenden Sie sich an den Serveradministrator.

Auf dem Client (von dem aus Sie SSH verwenden)

Erstellen Sie zunächst einen SSH-Schlüssel ohne Passwort. Ich empfehle Ihnen dringend, ihm einen Namen zu geben, anstatt den Standardnamen zu verwenden.

ssh-keygen -f foo

Die Option -f gibt einen Dateinamen an, „foo“ ist ein Beispiel; verwenden Sie den Namen Ihrer Wahl.

Wenn Sie zur Eingabe eines Passworts aufgefordert werden, drücken Sie einfach die Eingabetaste und Sie generieren einen Schlüssel ohne Passwort.

Als nächstes müssen Sie den Schlüssel auf den Server übertragen. Am einfachsten geht das mit ssh-copy-id. Dazu müssen Sie root vorübergehend erlauben, sich per SSH auf dem Server anzumelden.

Auf dem Server (auf dem Sie per SSH zugreifen)

bearbeiten/etc/ssh/sshd_config

sudo nano /etc/ssh/sshd_config

Stellen Sie sicher, dass Sie root die Anmeldung mit der folgenden Syntax gestatten

PasswordAuthentication yes
PermitRootLogin yes

Starten Sie den Server neu

sudo service ssh restart

Legen Sie ein sicheres Root-Passwort fest

sudo passwd

Auf dem Client:

Übertragen Sie den Schlüssel vom Client auf den Server

ssh-copy-id -i ~/.ssh/foo root@server

ändern Sie „foo“ in den Namen Ihres Schlüssels und geben Sie Ihr Server-Root-Passwort ein, wenn Sie dazu aufgefordert werden.

Testen Sie den Schlüssel

ssh -i ~/.ssh/foo root@server

Vorausgesetzt, es funktioniert, heben Sie die Festlegung des Root-Passworts auf und deaktivieren Sie die Kennwortanmeldung.

Auf dem Server:

sudo passwd -l root

Bearbeiten/etc/ssh/sshd_config

sudo nano `/etc/ssh/sshd_config`

Ändern Sie Folgendes:

PasswordAuthentication no
PermitRootLogin without-password

Starten Sie den Server neu

sudo service ssh restart

Auf dem Client (Test):

Sie sollten sich jetzt mit Ihrem Schlüssel ohne Kennwort per SSH anmelden können und sich als beliebiger Benutzer ohne Schlüssel nicht per SSH anmelden können.

ssh -i ~/.ssh/foo root@server

Teil 2: Ausführen von Befehlen über sudo ohne Eingabe eines Passworts

Sie konfigurieren sudo, um Ihnen die Ausführung von Befehlen ohne Kennwort zu ermöglichen.

Dies wird hier an zwei Stellen beantwortet:

Von beidem schlage ich vor, möglichst wenige Befehle zuzulassen (erste Antwort) und nicht alle Befehle (zweite Antwort).

Antwort2

Sie verwechseln zwei verschiedene Dinge:

Das passwortlose Protokoll wird verwendet, um sicherzustellen, dass sich niemand aus der Ferne in Ihr System einloggen kann, indem er Ihr Passwort errät. Wenn Sie sich per SSH über Benutzername@Rechner ohne Passwort verbinden können, ist dies richtig eingerichtet und hat nichts anderes damit zu tun.

sudowird verwendet, um einem normalen Benutzerkonto zu erlauben, etwas mit Superuser-Berechtigungen zu tun. Diestutverlangen, dass der Benutzer sein Passwort eingibt. Dies geschieht unabhängig davon, ob Sie remote verbunden sind (über passwortloses oder passwortgeschütztes SSH) oder ob Sie sich lokal auf dem Computer befinden. Sie versuchen, dies so einzustellen, dass Sie sudonicht nach Ihrem Passwort gefragt werden, was nicht empfohlen wird, aber Sie können lernen, wie das geht, indem Sie eine Antwort wie diese verwenden.https://askubuntu.com/a/74083/6161

Hinweis für zukünftige Leser dieser Antwort:

Meine obige Antwort beantwortet nicht die eigentliche Frage des ursprünglichen Posters, sie beschreibt, was Siesollentun Sie stattdessen. Wenn SieWirklichWenn Sie Remoteverbindungen direkt zum Root-Konto zulassen möchten, müssen Sie das Root-Konto aktivieren (siehe meinen Kommentar unten). Lassen Sie mich noch einmal sagenNICHTErlauben Sie Remote-Anmeldungen bei Ihrem Root-Konto.

Antwort3

F. Melden Sie sich als Root-Benutzer mit passwortlosem SSH beim Remote-Host an (z. B. ssh root@remotehost_ip).

A. Um sich mit passwortlosem SSH als Root-Benutzer beim Remote-Host anzumelden, befolgen Sie die folgenden Schritte.

1. Schritt:
Zuerst müssen Sie den öffentlichen Schlüssel des lokalen Benutzers mit der Datei authorized_keys des Root-Benutzers des Remote-Hosts teilen. Es gibt mehrere Möglichkeiten, dies zu tun, hier ist ein Beispiel.

https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2

Oder Sie können den Inhalt Ihres öffentlichen Schlüssels einfach in die Datei „authorized_keys“ des Root-Benutzers des Remote-Hosts kopieren und einfügen.

2. Schritt:
Konfigurieren Sie SSH, um eine passwortlose Anmeldung beim Remote-Host zu ermöglichen. Melden Sie sich beim Remote-Host an, bearbeiten Sie die Datei /etc/ssh/sshd_config und starten Sie den SSH-Dienst neu. Vergessen Sie nicht, „PermitRootLogin yes“ auszukommentieren.

#vim /etc/ssh/sshd_config
PermitRootLogin without-password
StrictModes no

#service ssh restart

Kommentieren Sie #PermitRootLogin aus.

3. Schritt:
Testen Sie Ihre Verbindung von Ihrem lokalen Computer mit dem Benutzer, dessen öffentlicher Schlüssel zuvor freigegeben wurde.

$ssh root@remotehost_ip

Antwort4

PermitRootLogin steuert, ob sich der Benutzer mit dem Namen „root“ (genauer gesagt: jeder Benutzer mit UID 0) anmelden darf. Wenn Sie sich als Root anmelden, müssen Sie keine sudoprivilegierten Aufgaben ausführen.

Wenn Sie sich hingegen mit einem Benutzerkonto anmelden und sudoohne Passwort verwenden möchten, müssen Sie die sudoers-Datei konfigurieren, ohne sich damit beschäftigen zu müssen /etc/ssh/sshd_config. SieheSo lässt sich Ubuntu das Passwort nach der ersten Verwendung für immer merken

verwandte Informationen