Ich bin ein Neuling in Sachen Gnu/Linux und UNIX. Ich spiele ein Spiel, um die Grundlagen dieses Betriebssystems zu lernen.
Als Teil des Spiels, das ich spiele, muss ich mich bei einem Remote-Server anmelden ssh
und benötige dabei nur das private Schlüsselzertifikat und den Benutzernamen (kein Kennwort).
- Wenn ich mich per SSH vom Remote-Computer aus anmelde (wo ich mit einem anderen Benutzernamen angemeldet bin), wird mir der Zugriff ohne Kennwort gewährt.
- Wenn ich versuche, mich von meinem lokalen Computer aus anzumelden, fragt mich SSH stattdessen nach einem Kennwort.
Ist dies die Folge einer SSH-Konfiguration des Servers, auf den ich zugreifen möchte?
Ich meine, SSH kann unterschiedliche Anmelderichtlinien anwenden, wenn ich mich vom lokalen Host (in diesem Fall dem Server) anmelde und wenn ich mich von einem Remotecomputer (in diesem Fall meinem PC) anmelde?
Vielen Dank.
Mit freundlichen Grüßen.
Antwort1
Ist dies die Folge einer SSH-Konfiguration des Servers, auf den ich zugreifen möchte?
Aufgrund der von Ihnen mitgeteilten Details können wir nicht sicher sein. Möglicherweise stellen Sie sogar eine Verbindung zu zwei unterschiedlichen, unabhängig konfigurierten SSH-Daemons her, die auf demselben System ausgeführt werden.
Ich meine, SSH kann unterschiedliche Anmelderichtlinien anwenden, wenn ich mich vom lokalen Host (in diesem Fall dem Server) anmelde und wenn ich mich von einer Remote-Maschine (in diesem Fall meinem PC) anmelde?
Ja, SSH-Server können basierend auf verschiedenen Eigenschaften der eingehenden Verbindungen unterschiedliche Richtlinien anwenden.
Match
Mit dem Schlüsselwort in der Konfiguration von OpenSSH können Sie beispielsweise sshd
bedingte Blöcke definieren, die Anweisungen gruppieren, die nur angewendet werden (und die zuvor festgelegten überschreiben), wenn eine Liste festgelegter Bedingungen erfüllt ist (weitere Informationen finden Sie unterman 5 sshd_config
).
Hinzufügen dieses Blocks zu /etc/ssh/sshd_config
(der genaue Speicherort kann je nach System variieren):
PubkeyAuthentication yes
Match Address "!127.0.0.1,!::1,*"
PubkeyAuthentication no
wird anweisen sshd
:
- Authentifizierung mit öffentlichem Schlüssel standardmäßig zulassen;
- Verbieten Sie die Authentifizierung mit öffentlichem Schlüssel für Verbindungen von anderen Adressen als
127.0.0.1
und::1
.
(Kopfschmerzersparnis: wie inman 5 ssh_config
, "MUSTER",
[...] eine negierte Übereinstimmung wird allein nie ein positives Ergebnis erzeugen. [...] Die Lösung besteht hier darin, einen Begriff einzuschließen, der eine positive Übereinstimmung ergibt, beispielsweise ein Platzhalterzeichen [...]
deshalb "!127.0.0.1,!::1,*"
enthält es *
am Ende ein).