Sette riktig .SSH/Config -tillatelser

Sette riktig .SSH/Config -tillatelser
SSH -protokollen er en sikker protokoll som vanligvis brukes til å koble til eksterne enheter som servere og nettverksenheter, inkludert rutere og brytere. Det fungerer i et klient-serveroppsett og lytter som standard på port 22 (selv om dette kan endres når det er nødvendig). SSH bruker forskjellige kryptering og hashingteknikker for å sikre at kommunikasjonen mellom klienten og den eksterne verten er kryptert og trygg fra avlytting.

SSH -filer lagres i .ssh mappe. Dette er en skjult mappe som ligger i hjemmekatalogen. De .ssh Katalog opprettes ikke som standard; Det opprettes når du starter en forbindelse med en ekstern vert eller bruker SSH-KeenGen Kommando for å generere de private og offentlige godkjenningstastene som når du vil sette opp passordløs SSH -godkjenning.

De .ssh mappe. Inneholder viktige SSH -filer som:

  1. Offentlige og private nøkler ( id_rsa og id_rsa.pub ).
  2. De kjente_hosts Fil - inneholder offentlige nøkler til alle eksterne systemer du har koblet til.
  3. De konfigurasjon Klientkonfigurasjonsfil

Hvis konfigurasjon filen eksisterer ikke, du kan enkelt opprette en som vist.

$ berøring ~/.SSH/Config

De .SSH/Config Client Configuration File

Hver gang du setter i gang en SSH -tilkobling, må du spesifisere detaljer som IP -adressen eller domenenavnet, og Port SSH lytter til. For eksempel,

$ ssh [email protected] -p 22

Det kan være hektisk å alltid huske slike detaljer. Og det er her ~/.SSH/Config filen kommer inn. De ~/.SSH/Config Fil er en konfigurasjonsfil som lar deg konfigurere konfigurasjonsdetaljer for den eksterne verten. Det sparer deg for å alltid måtte huske detaljene som kreves for tilkobling per vert for tilkobling.

En eksempler på konfigurasjonsfil vises som vist.

Verts iscenesettelse-server
Vertsnavn 192.168.2.103
Bruker James
Port 22

En enkel SSH -kommando inn i den eksterne verten vil se ut som følger:

$ SSH iscenesatteserver

De .ssh/config filtillatelser

Som standard, den ~/.SSH/Config Klientkonfigurasjonsfil har 644 filtillatelser. Du kan bekrefte at ved å bruke ls -la kommando som følger.

$ ls -la ~/.SSH/Config

Dette innebærer at eieren og gruppen av filen både har lest og skriver tillatelser (RW) mens andre brukere bare har lest tillatelser (R).

-RW-RW-R--

MERK:

Som tommelfingerregel, tildel aldri skrivetillatelser til andre brukere. Dette utgjør en sikkerhetsrisiko for filen din, og andre brukere som ikke er deg selv eller i gruppen din, kan endre innholdet i filen. Tilordne skrivetillatelser vil resultere i 'Dårlig eier eller tillatelser'Feil som angitt nedenfor.

Her ble konfigurasjonsfilen tildelt tillatelsene 666. Dette innebærer at alle både kan lese og skrive filen.

Tilsvarende gjelder det samme tilfellet her hvor filen er tildelt 777 tillatelser. Dette innebærer at alle kan lese, skrive og utføre filen. Enkelt sagt, hvem som helst har alle rettighetene til den potensielt farlige filen.

Beste praksis anbefaler at du legger igjen standardtillatelsene på 664 eller 600, der bare eieren har lest og skrevet tillatelser (RW). På denne måten forblir filen trygg fra å bli endret av uautoriserte brukere.

I tillegg, sørg for at du eier filen. Hvis filen blir endret til en annen bruker, vil SSH ikke kunne løse vertsnavnet som er gitt i konfigurasjonsfilen.

I eksemplet nedenfor, ~/.SSH/Config Eierskapet er satt til Bob: Bob.

For å løse dette problemet, gikk jeg tilbake til det opprinnelige fileieren ved å bruke Chown kommando.

$ sudo chown james: james ~/.SSH/Config

Med filtillatelsene tilbakeført, kan jeg nå ha tilgang ved å påkalle SSH -kommandoen etterfulgt av vertsnavnet som er spesifisert i konfigurasjonsfilen.

$ SSH iscenesatteserver

Og det er alt du trenger å vite om å sette tillatelser på ~/.SSH/Config fil. Forsikre deg om at du ikke setter lesetillatelser til resten av brukerne og sørg for at du eier filen.