SSH autorisierte Schlüssel Beispiel Gebrauch

SSH autorisierte Schlüssel Beispiel Gebrauch

SSH (sichere Schale) ist ein Protokoll, das für aus der Ferne und sicher (verschlüsselt) Zugriffssysteme verwendet wird. Der SSH -Server wird auf dem Remote -Computer und dem SSH -Client auf Ihrem Arbeitsgerät ausgeführt. Die Kommunikation zwischen Client und Server ist typisch über die Befehlszeile. Jetzt gibt es verschiedene Möglichkeiten zur Authentifizierung der Verbindung-Kennwortauthentifizierung, öffentlicher/privates Schlüsselbasierter Authentifizierung (unter Verwendung der Datei autorized_key) und hostbasierter Authentifizierung (Verwenden der Datei bekannt_host).

  1. Bei der kennwortbasierten Authentifizierungsmethode ist ein Kennwort erforderlich, um sich anzumelden. Passwörter können lang und mühsam sein, um sich zu erinnern. Schlimmer noch, sie können brutal erzwungen werden (gehackt)! Einfache Python -Skripte können Bruteforce sogar die schlechtesten Passwörter und als solche ein Sicherheitsrisiko darstellen.
  2. In der öffentlichen/privaten Key-basierten Authentifizierung ist für die Anmeldung kein Kennwort erforderlich (ein Kennwort ohne Anmeldung ohne Kennwort). In der Tat ist die key-basierte Authentifizierung sicherer als Kennwortauthentifizierung, da kein Kennwort eingeben muss. Unter solchen Umständen überprüft der Server einfach, dass Sie einen privaten Schlüssel haben! Dieser private Schlüssel ist eine Datei und kann daher kopiert werden (Sicherheitsrisiko). Es ist jedoch viel stärker und länger als ein 8-Charakter-Passwort. Darüber hinaus wird die Datei authorized_keys verwendet, um Benutzer mit dem Server zu authentifizieren.
  3. In der bekannten Host-basierten Authentifizierungsmethode enthält die bekannte Host-Datei die Hosts, die eine Verbindung herstellen dürfen. Die Datei bekannt_hosts wird verwendet, um Server von den Benutzern zu authentifizieren.

In diesem Tutorial werden wir uns untersuchen.

Einrichten der wichtigsten Authentifizierung einrichten

Bei der Einrichtung komplizierter Systeme wie dieser müssen wir sicherstellen, dass die Konfigurationsdateien angemessen konfiguriert sind! Wenn dies nicht der Fall ist, funktioniert der gesamte Prozess nicht! Jetzt gibt es hier zwei Systeme - den Client und den Server. Der /etc/ssh/sshd_config Auf dem Server auf dem Server wenden Sie sich an und konfigurieren Sie sie wie folgt:

Erlaubnisrootlogin Ja
PasswortAuthentication Ja
ChallengerePonseAthentication Nr

Als nächstes müssen wir öffentliche und private Schlüssel genre genre. Um die Schlüssel zu generieren, laufen Sie (auf dem Client -Computer):

ssh-keygen

Wenn Sie SSH-Keygen ausführen, werden Sie mit ein paar Fragen aufgefordert. Die erste Frage ist der Ort, an dem Sie die Schlüssel speichern möchten. Wenn Sie diese leer lassen, speichern Sie es im Standardordner. In meinem Fall ist das der/home/client/.ssh/id_rsa, wobei id_rsa der eigentliche private Schlüssel und der ist .SSH ist der Ordner. Als nächstes werden Sie aufgefordert, eine Passphrase einzugeben. Sie müssen keine Passphrase eingeben, dies fügt jedoch eine weitere Sicherheitsebene hinzu. Die Passphrase wird verwendet, um den privaten Schlüssel zu verschlüsseln.

Dies erzeugt einen öffentlichen Schlüssel und einen privaten Schlüssel.

~/.ssh/id_rsa (privater Schlüssel)
~/.ssh/id_rsa.Pub (öffentlicher Schlüssel)

Der Punkt SSH bedeutet, dass es standardmäßig ein versteckter Ordner ist. Darüber hinaus wird der öffentliche Schlüssel zur Verschlüsselung verwendet, während der private Schlüssel zur Entschlüsselung verwendet wird. Und obwohl der öffentliche Schlüssel überall und überall umgesetzt werden kann, muss der private Schlüssel sicher gehalten werden! Ihr privater Schlüssel muss jederzeit in Ihrem Netzwerk bleiben! Wenn Sie Ihren privaten Schlüssel verlieren, können Sie auch davon ausgehen, dass Ihr System kompromittiert wurde. Es ist schlimmer, als Ihr Passwort zu verlieren, da es sich um ein passwortloses Login handelt.

Als nächstes müssen wir den öffentlichen Schlüssel auf den Server kopieren, und dafür verwenden wir den folgenden Code (der auf dem Client -Computer ausgeführt wird):

ssh-copy-id

In meinem Fall würde ich zum Beispiel schreiben:

Beispiel: [email protected]

Ssh-copy-id ist so, dass Servername ist der Name des Servers und IP ist seine IP -Adresse. In diesem Fall, "ServerIst der Name meines Servers und 10.0.2.15 ist seine IP -Adresse. Wenn der vorherige Code in den Client -Computer eingegeben wird, fordert der Client das Kennwort des Servers auf. Es kopiert den öffentlichen Schlüssel zum Server unter ~/.ssh/autorized_keys und folglich Anzeige ”Anzahl der Tasten hinzugefügt:“ Auf Ihrer Kundenmaschine.

Die Client -Maschine wird Sie außerdem auffordern, eine Anmeldung zu versuchen, indem Sie Folgendes verwenden:

ssh
(Beispiel: SSH [email protected])

In dem zweiten, der öffentliche Schlüssel wird auf den Server kopiert, wird eine Datei namens Authorized_keys mit dem öffentlichen Schlüssel erstellt. Wie Sie auf den folgenden Bildern sehen können, finden Sie hier einen versteckten Ordner namens /.SSH hat meinen Server gewonnen; Wenn die Datei autorized_keys geöffnet wird, können Sie den öffentlichen Schlüssel sehen, den wir darin generiert haben.

Obwohl dieser Prozess recht einfach zu sein scheint, können Sie und wahrscheinlich auf eine Reihe von Fehlern stoßen, während Sie den wichtigsten Authentifizierungsprozess einrichten. Insbesondere eins ist das folgende:

Fehler "Der Agent gab zu, dass das Versäumnis mit dem Schlüssel nicht signiert wurde. Zugriff verweigert. (Öffentlicher Schlüssel"

Sie können diesen Fehler erhalten, nachdem Sie den öffentlichen Schlüssel auf die kopiert haben Datei Authorized_keys. Verwenden Sie den folgenden Code auf dem Client -Computer, um dies zu beheben:

ssh-add

Sobald alles eingerichtet wurde, müssen Sie jetzt die Kennwortauthentifizierung auf Ihrem Servergerät deaktivieren. Dies geschieht durch das Eingehen in die /etc/ssh/sshd_config Datei auf Ihrem Server und Einstellen der PasswortAuthentication zu Nein:

PasswortAuthentication -Nr

Sobald Sie die Kennwortauthentifizierung auf Nein festgelegt haben, sollten Sie automatisch angemeldet werden, wenn Sie versuchen, sich über SSH anzumelden. (Bitte beachten Sie, dass ich keine Passphrase festgelegt habe.)

Datei Authorized_keys

Unabhängig von der Art der Taste, die Sie verwenden (Beispiel: RSA, ECDSA usw.) Um die wichtige Authentifizierung zu verwenden, muss der generierte öffentliche Schlüssel auf den Server kopiert werden Datei Authorized_keys. Wenn diese Datei nicht vorhanden ist, versucht der Server normalerweise eine Kennwortauthentifizierung. Bitte denken Sie auch daran, dass jeder öffentliche Schlüssel in einer einzigen Zeile in der gespeichert ist Datei Authorized_keys. Denken Sie auch daran, das zu geben /.SSH -Ordner, die privaten/öffentlichen Schlüssel und die Datei Authorized_keys Die entsprechenden Berechtigungen - Sie und Sie allein sollten in der Lage sein, sich damit einzulegen. Beachten Sie, dass Sie die öffentliche Taste manuell in die kopieren können /.SSH -Ordner Auch und wenn man es manuell erledigt, sind die entsprechenden Berechtigungen ein wichtiger Bestandteil des Prozesses.

Für den Fall, dass Sie eine zweite öffentliche Taste manuell in die hinzufügen Datei Authorized_keys, beenden Sie die Linie mit einem “NewlinOder eine Rückkehr. Wenn Sie dies nicht tun, wird es denken, dass die beiden unterschiedlichen Schlüssel ein einzelner Schlüssel sind und auch nicht funktionieren wird.

Der /.SSH -Verzeichnis sollte die folgende Erlaubnis haben:

CHMOD 700 ~/.ssh

Der Datei Authorized_keys sollte die folgende Erlaubnis haben:

CHMOD 600 ~/.ssh/autorized_keys

Der Öffentlicher Schlüssel sollte die folgende Erlaubnis haben:

CHMOD 644 ~/.ssh/id_rsa.Pub

Der private Schlüssel sollte die folgende Erlaubnis haben:

CHMOD 600 ~/.ssh/id_rsa

Sie können anderen Benutzern auch Zugriff auf Ihren Server gewähren. Dafür bekommen Sie einfach ihren öffentlichen Schlüssel und legen ihn in die Datei Authorized_keys (in einer neuen Linie). Letzteres gewährt ihnen Zugriff auf Ihren Server.

In der Regel kann der Benutzer bei der Einrichtung der Schlüsselbasis mit voll funktionsfähigen Befehlen auf den Remote-Computer zugreifen. Sie können jedoch den Zugriff auf einen einzelnen Befehl einschränken, den Sie mit dem gewünscht haben Datei Authorized_keys. Das nennt man "erzwungener Befehl“.

Dies ist das Format der Datei Authorized_keys Wenn Sie einen Befehl erzwingen möchten:


Ex:
Command = ”Date” SSH-RSA AASASA […]

In meinem Beispiel habe ich den Befehl „Datum“ vor dem öffentlichen Schlüssel in der Datei Authorized_Keys gestellt (siehe im Bild unten). Das Ergebnis dieses hinzugefügten Befehls zur Datei autorized_keys ist, dass ich nur das Datum auf meinem Client -Computer erhalte. Der von Ihnen angegebene Befehl und nur dieser Befehl wird dann ausgeführt oder zulässig.


Der Nachteil des erzwungenen Befehls in der Datei Authorized_keys ist, dass Sie normalerweise nur einen Befehl pro autorisierter öffentlicher Schlüssel einfügen können. Um dies zu umgehen, benötigen Sie ein Bash -Skript. Wenn Sie ein Bash -Skript zu tun haben, verwenden Sie die folgende Notation:

Befehl =

Angenommen, ich schreibe ein Skript namens ssh_script.Sch (Dies ist nur ein Beispielskript):

#!/Bin/Bash
PS3 = 'Wählen Sie Ihre Option:'
Choices = ("das Datum erhalten" "Machen Sie ein Verzeichnis" "Machen Sie eine Datei" "" Beenden ")
Wählen Sie opt in "$ Choices [@]"; Tun
Fall $ $ entscheiden
"das Datum bekommen")
CurrentDate = 'Datum +"%y-%M-%d%t"'
echo $ currentDate
;;
"ein Verzeichnis machen")
Echo "Wie heißt das Verzeichnis??"
Lesen Sie Namenir
mkdir $ namerir
;;
"eine Datei machen")
Echo "Geben Sie den Text ein, den Sie in Datei platzieren möchten"
Text lesen
Echo "Name der Datei bitte"
Lesen Sie den Dateinamen
Echo $ text >> $ Dateiname
brechen
;;
"Ausfahrt")
echo "gut verabschieden! Bis bald!"
Ausfahrt
;;
*) Echo "Ungültige Option $ Antwort" ;;
ESAC
Erledigt

Der nächste Schritt besteht darin, diese Datei ausführbar zu machen, indem Sie Folgendes eingeben:

CHMOD +X SSH_Script.Sch

Bitte beachten Sie, dass der Vorgang einen Fehler macht, wenn Sie diese Datei nicht ausführen,! Hier platzieren Sie die Datei, in der Sie gerade erstellt wurden ~/.ssh as ~/.ssh/ssh_script.Sch, und schreiben Sie Folgendes in die Datei Authorized_key:

Ex:
Command = ”/home/server/.ssh/ssh_script.SH ”SSH-RSA AASASA […]

Das Ergebnis ist wie folgt:

Wenn das ssh_script.SH (ausführbare) Datei ist in die platziert ~/.SSH -Ordner (~/.ssh/ssh_script.Sch), und das die Datei Authorized_keys wird geändert, Sie sollten die Ergebnisse des Bash -Skripts auf der Client -Maschine sehen (wie im obigen Bild). Und das ist es! Einfacher, luftiger, schöner Code!

Schlüsselbasierte Authentifizierung ist ein einfacher, schneller und sicherer Weg, um sich bei Ihrem Remote -Computer mithilfe zu melden ssh. Insbesondere die Datei Authorized_keys ist von großer Bedeutung bei der Authentifizierung des Benutzers und der Angabe, welche Befehle vom Benutzer zulässig sind.

Glückliche Codierung!