Sie können sich ohne Kennwort mit SSH -Tasten bei einem Linux -Server anmelden. Diese Methode ist im Allgemeinen sicherer als die Kennwortauthentifizierung. Hier ist eine Aufschlüsselung des Prozesses:
1. Generieren Sie ein SSH -Schlüsselpaar auf Ihrem lokalen Computer (Client)
*Öffnen Sie ein Terminal auf Ihrer lokalen Maschine (wo Sie anschließen *von *).
* Verwenden Sie den Befehl "ssh-keygen":
`` `bash
ssh-keygen
`` `
* Eingabeaufforderungen: Der Befehl fordert Sie auf:
* Datei eingeben, in der der Schlüssel speichert (/home/yourusername/.sssh/id_rsa): Drücken Sie die Eingabetaste, um den Standardstandort zu akzeptieren (`~/.sssh/id_rsa` für die private Taste und` ~/.sssh/id_rsa.pub` für die öffentliche Taste). Dies ist normalerweise die beste Option.
* Passphrase eingeben (leer für keine Passphrase): Dies ist *optional *. Eine Passphrase fügt eine zusätzliche Sicherheitsebene hinzu, sodass Sie sie jedes Mal eingeben müssen, wenn Sie den Schlüssel verwenden. Wenn Sie nicht jedes Mal, wenn Sie eine Verbindung herstellen, eine Passphrase eingeben möchten, lassen Sie sie leer und drücken Beachten Sie jedoch, dass jeder, der auf Ihren Server zugreifen kann, ohne Passphrase auf Ihren Server zugreifen kann, wenn Ihr privater Schlüssel gefährdet ist. Wägen Sie die Bequemlichkeit gegen die Sicherheitsauswirkungen ab.
* Geben Sie die gleiche Passphrase erneut ein: Wenn Sie sich für eine Passphrase entschieden haben, bestätigen Sie diese.
* Schlüsseldateien: Nach Abschluss des Vorgangs haben Sie zwei Dateien im Verzeichnis "~/.Ssh":
* `id_rsa`:Dies ist Ihr privater Schlüssel . Halten Sie diese Datei geheim und sicher! Teile es niemals mit jemandem!
* `id_rsa.pub`:Dies ist dein öffentlicher Schlüssel . Sie müssen den Inhalt dieser Datei auf den Server kopieren.
2. Kopieren Sie den öffentlichen Schlüssel zum Server
Es gibt verschiedene Möglichkeiten, den öffentlichen Schlüssel auf den Server zu kopieren. Am einfachsten ist oft "ssh-copy-id", aber es erfordert eine Kennwortauthentifizierung *ein letztes Mal *. Wenn Sie zunächst keine Kennwortauthentifizierung verwenden können, müssen Sie eine manuelle Methode verwenden.
* Verwenden von `ssh-copy-id` (am einfachsten, wenn Sie Passwortzugriff haben):
`` `bash
ssh-copy-id user@server_ip_address
`` `
Ersetzen Sie `user` durch Ihren Benutzernamen auf dem Server und` server_ip_address` durch die IP -Adresse oder den Hostnamen des Servers. Sie werden für Ihr Passwort auf dem Server aufgefordert. Dieser Befehl fügt Ihren öffentlichen Schlüssel automatisch in die Datei "~/.Ssh/autorized_keys" auf dem Server an.
* Handliches Kopieren (wenn Sie keinen Passwortzugriff haben):
1. Der öffentliche Schlüssel auf Ihrer lokalen Maschine anzeigen:
`` `bash
cat ~/.sssh/id_rsa.pub
`` `
Kopieren Sie die gesamte Ausgabe (einschließlich des SSH-RSA` zu Beginn und Ihrem Benutzernamen und Hostnamen am Ende). Es wird ungefähr so aussehen wie:`ssh-rsa aaaab3nzac1yc2eaaaadaqabaaAbaqdf ... yourusername@YourHostName`
2. Melden Sie sich beim Server anhand einer anderen Methode an (z. B. über eine Webkonsole oder einen anderen temporären Zugriff).
3..
`` `bash
Mkdir -p ~/.Ssh
CHMOD 700 ~/.SH #Important:Berechtigungen festlegen, um den Zugriff einzuschränken
Berühren Sie ~/.Ssh/autorized_keys
CHMOD 600 ~/.SH/Autorized_keys #important:Berechtigungen festlegen, um den Zugriff einzuschränken
`` `
4. Bearbeiten Sie die Datei `Authorized_keys` und fügen Sie Ihren öffentlichen Schlüssel ein:
`` `bash
Nano ~/.SH/Autorized_keys # oder verwenden Sie VI, VIM, EMACs usw.
`` `
Fügen Sie den öffentlichen Schlüssel, den Sie in Schritt 1 kopiert haben, in diese Datei ein. Stellen Sie sicher, dass alles in einer Zeile ist. Speichern und schließen Sie die Datei.
5. Wichtig:Berechtigungen überprüfen: Falsche Berechtigungen sind eine häufige Ursache für das SSH -Schlüsselauthentifizierungsfehler. Stellen Sie Folgendes sicher:
* `~/.Ssh` verzeichnis:` 700` (drwx ------)-Nur der Benutzer kann zugreifen.
* `~/.ssh/autorized_keys` Datei:` 600` (-rw -------)-Nur der Benutzer kann lesen und schreiben.
* Benutzerverzeichnis des Benutzers:Lesbar und ausführbar durch den Benutzer (z. B. `755` oder` 700`).
3. Testen Sie die Verbindung
* Versuchen Sie nun, sich ohne Kennwort beim Server anzumelden:
`` `bash
ssh user@server_ip_address
`` `
* Wenn Sie eine Passphrase auf Ihrem privaten Schlüssel festlegen, werden Sie aufgefordert. Wenn Sie keine Passphrase festgelegt haben, sollten Sie direkt angemeldet werden.
4. Deaktivieren Sie die Kennwortauthentifizierung (optional, aber für die Sicherheit empfohlen)
* Wichtig:Stellen Sie sicher, dass Sie sich erfolgreich mit SSH -Tasten anmelden können Wenn Sie sich ausschließen, müssen Sie eine andere Methode verwenden, um den Zugriff zurückzugewinnen (z. B. die Konsole des Servers).
* Bearbeiten Sie die SSH -Server -Konfigurationsdatei:
`` `bash
sudo nano/etc/ssh/sshd_config # oder verwenden Sie vi, vim, emacs usw.
`` `
* Finden und ändern Sie diese Zeilen (oder fügen Sie sie hinzu, wenn sie nicht existieren):
`` `
PasswortAuthentication -Nr
ChallengerePonseAthentication No #AlSO empfohlen zu deaktivieren
Usepam Nr
`` `
* Speichern Sie die Datei und starten Sie den SSH -Dienst neu:
`` `bash
sudo systemctl starten Sie SSHD #OR Sudo Service SSH neu starten Sie je nach System neu
`` `
Fehlerbehebung
* Berechtigungen sind falsch: Dies ist das häufigste Problem. Überprüfen Sie die Berechtigungen des Verzeichnisses von `.Ssh` und` autorized_keys`-Datei.
* Falsch öffentlicher Schlüssel: Stellen Sie sicher, dass Sie den * gesamten * öffentlichen Schlüssel in die Datei "Autorized_keys" kopiert haben und dass es keine zusätzlichen Räume oder Zeilenpausen gibt.
* SSH -Serverkonfiguration: Überprüfen Sie die Datei `sshd_config`. Es kann andere Einstellungen geben, die die Schlüsselauthentifizierung beeinträchtigen (z. B. "PubkeyAuthentication No`).
* Selinux/Apparmor: Wenn Sie Selinux oder Apparmor verwenden, verhindern sie möglicherweise, dass SSH auf die Schlüsseldateien zugreift. Überprüfen Sie ihre Protokolle und passen Sie die Konfiguration nach Bedarf an.
* Firewall: Stellen Sie sicher, dass Ihre Firewall SSH -Verkehr zulässt (normalerweise Port 22, aber es kann anders sein).
* Client -Konfiguration: Überprüfen Sie die SSH -Konfigurationsdatei Ihres Clients (`~/.SH/config`) auf Einstellungen, die möglicherweise das Standardverhalten überschreiben.
Sicherheitsüberlegungen
* Schutz Ihres privaten Schlüssels: Ihr privater Schlüssel ist das Wichtigste. Wenn es kompromittiert ist, kann jemand Sie auf dem Server ausgeben. Speichern Sie es sicher und überlegen Sie, ob Sie eine Passphrase verwenden.
* regelmäßig Tasten drehen: Es ist eine gute Praxis, neue SSH -Tasten regelmäßig zu generieren und alte alte aus der Datei "Autorized_keys" zu entfernen.
* Verwenden Sie eine starke Passphrase: Wenn Sie eine Passphrase verwenden, machen Sie sie stark und unvergesslich. Ein Passwort -Manager kann helfen.
* SSH -Zugriff begrenzen: Verwenden Sie Firewall -Regeln und andere Sicherheitsmaßnahmen, um den SSH -Zugriff auf nur vertrauenswürdige Netzwerke und IP -Adressen einzuschränken.
* Kennwortauthentifizierung deaktivieren: Wie bereits erwähnt, verbessert die Deaktivierung der Kennwortauthentifizierung die Sicherheit erheblich, indem das Risiko von Brute-Force-Angriffen beseitigt wird.
Wenn Sie diese Schritte ausführen, können Sie sich mit SSH -Tasten sicher und bequem bei Ihrem Linux -Server ohne Kennwort anmelden. Denken Sie daran, die Sicherheit zu priorisieren und Ihren privaten Schlüssel zu schützen.