Passwortloses SSH funktioniert nur, wenn ich bereits bei SSH angemeldet bin

Passwortloses SSH funktioniert nur, wenn ich bereits bei SSH angemeldet bin

Also habe ich passwortloses SSH wie folgt eingerichtet:Wie kann ich eine passwortlose SSH-Anmeldung einrichten?

Nachdem ich dies eingerichtet habe, würde ich erwarten, dass ich kein Passwort für SSH benötige. Mein Problem ist, dass ich bei meiner ersten Verbindung mit SSH nach einem Passwort gefragt werde, aber bei zusätzlichen Sitzungen darüber hinausnichtnach einem Passwort fragen.

Ich habe meine sshd_config bereits überprüft, um sicherzustellen, dass sie Folgendes enthält:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  %h/.ssh/authorized_keys

Ich bin ziemlich sicher, dass meine Berechtigungen richtig sind, denn wenn sie es nicht wären, würde das passwortlose SSH überhaupt nicht funktionieren.

Um dieses Problem noch „lustiger“ zu machen, habe ich bemerkt, dass es manchmal funktioniert, wenn ich meinen Computer (entweder den Client-Computer oder den SSH-Server-Computer) neu starte. Wenn ich den Computer dann herunterfahre und es am nächsten Tag erneut versuche, funktioniert es nicht mehr. Vielleicht ist das völlig zufällig, aber es ist etwas, das mir aufgefallen ist.

Antwort1

Dies ist ein häufiges Problem bei verschlüsselten Heimnetzwerken und wurde bereits oft beantwortet, zum Beispiel aufUnix, sondern wird sogar in offiziellenUbuntu-Dokumentation.

Dies liegt wahrscheinlich daran, dass Ihr Home-Verzeichnis (und damit der Schlüssel) während der Anmeldezeit nicht zugänglich ist. Dies kann daran liegen, dass Ihr Home-Verzeichnis nach der Anmeldung von einem Netzlaufwerk (auf einem gemeinsam genutzten System) gemountet wird oder dass Ihr Home-Verzeichnis verschlüsselt ist (normalerweise bei Installationen von Arbeitsstationen).

Die Lösung dieses Problems ist kompliziert, aber ich werde mich für eine Diskussion darum kümmern. Die Lösung besteht darin, es AuthorizedKeysFilean einen anderen Ort zu verschieben, der zugänglich ist, oder in einen globalen Schlüsselspeicher ( /etc/security/authorized_keys) oder in eine Art SSO-Verwaltungssystem (IPA, LDAP), das Ihren Schlüssel vom Verzeichnisserver abruft (ja, kann lokal sein). Hängt davon ab, wie viel Kontrolle Sie über das Zielsystem haben.

Die beste Lösung besteht wahrscheinlich darin, Ihre Schlüssel an einem anderen Ort zu speichern und den Wert wie folgt zu ändern sshd_config:

AuthorizedKeysFile /etc/ssh/%u/authorized_keys

Wenn Sie Ihre verschieben authorized_keys, stellen Sie auf jeden Fall sicher, dass sie über die richtigen Berechtigungen verfügen, und berücksichtigen Sie die Tatsache, dass Sie bei Anmeldung mit einem öffentlichen Schlüssel nicht auf Ihr Home-Verzeichnis zugreifen können (es ist mit Ihrem Passwort verschlüsselt!), es sei denn, Sie ändern die Art der Verschlüsselung.

Antwort2

Wenn das Zertifikat richtig kopiert wurde, sollte es mit der Verbindung im folgenden Format funktionieren:

ssh hostname\ip -l username

Dabei ist Benutzername der Benutzer, der Ihr Zertifikat in .ssh/authorized_keys hat

verwandte Informationen