Wie kann ich mein eigenes Konto von der Remote-SSH-Anmeldung mit einem Passwort sperren?

10

Ich möchte die Remote-Anmeldung mit Kennwort nicht vollständig deaktivieren, aber ich möchte es so gestalten, dass auf mein Konto nur mit Schlüsselpaarauthentifizierung zugegriffen werden kann (es gibt andere Benutzer, die Kennwörter zum Anmelden verwenden möchten). Ist es möglich, dies auf Benutzerbasis zu ändern, idealerweise ohne die Systemeinstellungen zu ändern?

Und um es klar zu machen, mein Konto hat Sudo-Zugriff, daher möchte ich das Passwort nicht sperren.

Phunehehe
quelle

Antworten:

9

Sie können die Option Match in verwenden sshd_config

Match Führt einen bedingten Block ein. Wenn alle Kriterien in der Übereinstimmungszeile erfüllt sind, überschreiben die Schlüsselwörter in den folgenden Zeilen die im globalen Abschnitt der Konfigurationsdatei festgelegten, bis entweder eine andere Übereinstimmungszeile oder das Ende der Datei. [1]

Also, am Ende dieser Datei können Sie angeben:

Match User yourusername
PasswordAuthentication no

Siehe man 5 sshd_configfür alle zur Verfügung stehenden Optionen.

[1] http://www.openbsd.org/cgi-bin/man.cgi?query=sshd_config&sektion=5

Jasonwryan
quelle
Das ist schon gut, aber ich möchte sehen, ob ich auf die Bearbeitung von sshd_config verzichten kann.
Phunehehe
2
Angesichts der Tatsache, dass Sie eine Systemänderung vornehmen möchten, dh eine, die sich nicht auf andere Benutzer auswirkt, scheint dies unwahrscheinlich zu sein ...
Jasonwryan
und was ist mit ~ / .ssh / config? Haben Sie versucht, die Einstellungen dort aufzunehmen?
ttyS0
1
AFAK ~ / .ssh / config für den Client, nicht für den Server.
Adam Byrtek
1

Die Antwort von Jasonwryan wird der richtige Weg sein, um diese Änderung vorzunehmen. Die einzige Ergänzung, die ich machen würde, ist, dass Sie die Übereinstimmung so einstellen könnten, dass sie gruppenbasiert ist, sodass alle Benutzer in der Radgruppe die Schlüsselauthentifizierung verwenden müssen, während andere Kennwörter verwenden können.

Ich weiß, dass Sie dies tun möchten, ohne die Systemkonfigurationsdateien zu ändern, aber es gibt einen guten Grund, warum dies nicht möglich sein wird. In Ihrem Kopf ist es sinnvoll, dass Ihr Benutzer in der Lage sein sollte, eine sicherere Anmelderichtlinie einzuführen, aber nur weil es Ihrer Meinung nach eine sicherere Option ist, ändert dies nichts an der Tatsache, dass es sich immer noch um eine Änderung der Systemanmeldeanforderungen für handelt ein entfernter Benutzer.

Um zu verstehen, warum dies ein Problem ist, stellen Sie sich das Szenario umgekehrt vor. Der Systemadministrator (der die Systemkonfigurationsdateien ändern kann) setzt das System nur auf die schlüsselbasierte Anmeldung. Dann kommt ein Benutzer mit nur Zugriff auf seine eigene Benutzerdatei und legt sein Konto so fest, dass die Kennwortauthentifizierung möglich ist, wobei die Systemrichtlinie überschrieben wird. BEEEEEEP . Sicherheitsproblem!

Erklärt das, warum die Art der Änderung, die Sie vornehmen möchten, nur über die Systemkonfigurationsdatei möglich ist?

Caleb
quelle
Es ist schwierig, so zu denken, denn wenn ich ein normaler Benutzer wäre, der kein Sudo hat, kann ich meine Schlüssel gerne einrichten und dann das Passwort sperren, wodurch mein Konto "nur Schlüsselauthentifizierung" wird.
Phunehehe
In einem anderen Gedanken könnte ich mein Passwort jedes Mal sperren, wenn ich mich abmelden möchte. Dies sollte die Anmeldung aller Passwörter für mein Konto verhindern. Sobald ich mit meinen Schlüsseln angemeldet bin, kann ich das Passwort wieder für sudo aktivieren. Natürlich ist es keine gute Lösung, aber ich denke, dass es möglich ist.
Phunehehe
1
Sie können dies nur tun, weil der Systemadministrator die Schlüsselauthentifizierung zugelassen hat und Sie nur Einschränkungen für sich selbst hinzufügen und nichts ändern. Wenn Sie Ihr Kennwort deaktivieren, wird es nur auf einen ungültigen Wert gesetzt. Es ändert nichts an der Authentifizierung, die der Systemdämon zulässt.
Caleb
"Einschränkungen für sich selbst hinzufügen, nichts ändern", ist genau das, was ich tun möchte.
Phunehehe
@Caleb: Es wäre kein Sicherheitsproblem authorized_keys, mehr Einschränkungen zuzulassen , wie es Phunehehe will. Beispielsweise authorized_keyskönnen bestimmte Schlüssel auf bestimmte Befehle beschränkt werden.
Gilles 'SO - hör auf böse zu sein'
0

Hinzufügen von Einschränkungen für sich selbst, ohne etwas zu ändern

Warum nicht auf der Clientseite, wenn es sicher ist, dass ssh der Client ist, der für Anmeldeversuche verwendet wird? Wenn ja, nehmen Sie Änderungen an ssh_config anstelle von sshd_config vor. Suchen Sie nach den Parametern 'PasswordAuthentication No' und PreferredAuthentications

Nikhil Mulley
quelle