Richtig einstellen .SSH/Konfigurationsberechtigungen

Richtig einstellen .SSH/Konfigurationsberechtigungen
Das SSH -Protokoll ist ein sicheres Protokoll, das normalerweise zur Verbindung zu Remote -Geräten wie Servern und Netzwerkgeräten, einschließlich Routern und Switches, verwendet wird. Es funktioniert in einem Client-Server-Setup und hört standardmäßig auf Port 22 auf (obwohl dies bei Bedarf geändert werden kann). SSH verwendet unterschiedliche Verschlüsselungs- und Hashing -Techniken, um sicherzustellen, dass die Kommunikation zwischen dem Kunden und dem Remote -Host verschlüsselt und vor Abhören sicher ist.

SSH -Dateien werden in der gespeichert .ssh Ordner. Dies ist ein versteckter Ordner, der im Heimverzeichnis liegt. Der .ssh Verzeichnis wird standardmäßig nicht erstellt. Es wird erstellt, wenn Sie eine Verbindung mit einem Remote -Host einleiten oder die verwenden ssh-keygen Befehl zum Generieren der privaten und öffentlichen Authentifizierungsschlüssel wie bei der Einrichtung einer kennwortlosen SSH -Authentifizierung.

Der .ssh Ordner. Enthält essentielle SSH -Dateien wie:

  1. Öffentliche und private Schlüssel ( id_rsa und id_rsa.Pub ).
  2. Der Bekannt_Hosts Datei - Enthält öffentliche Schlüssel aller Remote -Systeme, mit denen Sie verbunden sind.
  3. Der Konfiguration Client -Konfigurationsdatei

Wenn der Konfiguration Datei gibt es nicht, Sie können leicht eine wie gezeigt erstellen.

$ touch ~/.ssh/config

Der .SSH/Konfigurations -Client -Konfigurationsdatei

Jedes Mal, wenn Sie eine SSH -Verbindung einleiten, müssen Sie Details wie die IP -Adresse oder den Domänennamen angeben, und der Port SSH hört sich an. Zum Beispiel,

$ ssh [email protected] -p 22

Es kann hektisch sein, sich immer an solche Details zu erinnern. Und hier die ~/.ssh/config Datei kommt herein. Der ~/.ssh/config Die Datei ist eine Konfigurationsdatei, mit der Sie Konfigurationsdetails pro Benutzer konfigurieren können. Es erspart Ihnen die Qual, immer an die für die Verbindung erforderlichen Per-Host-Details zurückzuführen zu sein.

Eine Beispielkonfigurationsdatei wird wie gezeigt angezeigt.

Host-Staging-Server
Hostname 192.168.2.103
Benutzer James
Port 22

Ein einfacher SSH -Befehl in den Remote -Host würde wie folgt aussehen:

$ ssh staging-server

Der .SSH/Konfigurationsdateiberechtigungen

Standardmäßig die ~/.ssh/config Die Client -Konfigurationsdatei besitzt die 644 Dateiberechtigungen. Sie können das überprüfen, um die zu verwenden ls -la Befehl wie folgt.

$ ls -la ~/.ssh/config

Dies impliziert, dass der Eigentümer und die Gruppe der Datei Berechtigungen (RW) gelesen und schreiben, während andere Benutzer nur Berechtigungen gelesen haben (R).

-RW-rw-r--

NOTIZ:

Den Faustregel niemals Schreibberechtigungen zu anderen Benutzern zuweisen. Dies stellt ein Sicherheitsrisiko für Ihre Datei dar, und andere Benutzer, die nicht Sie selbst oder in Ihrer Gruppe sind, können den Inhalt der Datei ändern. Die Zuweisung von Schreibberechtigungen führt zum ''Schlechter Besitzer oder Berechtigungen'Fehler wie unten angegeben.

Hier wurde der Konfigurationsdatei die Berechtigungen 666 zugewiesen. Dies impliziert, dass jeder die Datei sowohl lesen als auch schreiben kann.

In ähnlicher Weise gilt derselbe Fall hier, wo der Datei 777 Berechtigungen zugewiesen wurden. Dies impliziert, dass jeder die Datei lesen, schreiben und ausführen kann. Einfach ausgedrückt, jeder hat alle Rechte an der potenziell gefährlichen Akte.

Best Practice empfiehlt, dass Sie die Ausfallberechtigungen unterlassen 664 oder 600, wo nur der Eigentümer Berechtigungen gelesen und geschrieben hat (RW). Auf diese Weise bleibt die Datei sicher, von nicht autorisierten Benutzern geändert zu werden.

Stellen Sie außerdem sicher, dass Sie die Datei besitzen. Wenn die Datei in einen anderen Benutzer geändert wird, kann SSH den in der Konfigurationsdatei bereitgestellten Hostnamen nicht beheben.

Im folgenden Beispiel die ~/.ssh/config Eigentum wurde auf Bob: Bob.

Um dieses Problem zu beheben, habe ich mit der ursprünglichen Dateibesitz zurück zurückgekehrt Chown Befehl.

$ sudo chown James: James ~/.ssh/config

Wenn die Dateiberechtigungen zurückverkehrt sind, kann ich jetzt Zugriff haben, indem ich den SSH -Befehl aufgerufen habe, gefolgt von dem in der Konfigurationsdatei angegebenen Hostnamen.

$ ssh staging-server

Und das ist alles, was Sie über das Festlegen von Berechtigungen auf dem wissen müssen ~/.ssh/config Datei. Stellen Sie sicher.