De juiste .ssh/config-machtigingen instellen

Setting Proper Ssh Config Permissions



Het SSH-protocol is een beveiligd protocol dat meestal wordt gebruikt om verbinding te maken met externe apparaten zoals servers en netwerkapparaten, inclusief routers en switches. Het werkt in een client-serverconfiguratie en luistert standaard op poort 22 (hoewel dit indien nodig kan worden gewijzigd). SSH maakt gebruik van verschillende versleutelings- en hash-technieken om ervoor te zorgen dat de communicatie tussen de client en de externe host versleuteld is en beveiligd tegen afluisteren.

SSH-bestanden worden opgeslagen in de .ssh map. Dit is een verborgen map die zich in de basismap bevindt. De .ssh directory wordt standaard niet aangemaakt; het wordt gemaakt wanneer u een verbinding tot stand brengt met een externe host of de gebruikt ssh-keygen opdracht om de persoonlijke en openbare authenticatiesleutels te genereren zoals wanneer u dat wilt wachtwoordloze ssh-authenticatie instellen.







De .ssh map. bevat essentiële SSH-bestanden zoals:



  1. Openbare en privésleutels ( id_rsa en id_rsa.pub ).
  2. De bekende_hosts bestand – Bevat openbare sleutels van alle externe systemen waarmee u verbinding hebt gemaakt.
  3. De configuratie client configuratiebestand

Als de configuratie bestand niet bestaat, kunt u er eenvoudig een maken zoals weergegeven.



$ raak ~/.ssh/config . aan

Het .ssh/config-clientconfiguratiebestand

Elke keer dat u een SSH-verbinding tot stand brengt, moet u details opgeven, zoals het IP-adres of de domeinnaam en de poort waarnaar SSH luistert. Bijvoorbeeld,

$ ssh [e-mail beveiligd] -p 22

Het kan hectisch zijn om zulke details altijd te onthouden. En dit is waar de ~/.ssh/config bestand komt binnen. De ~/.ssh/config bestand is een configuratiebestand waarmee u configuratiedetails per gebruiker van de externe host kunt configureren. Het bespaart u de pijn om altijd de details per host te moeten oproepen die nodig zijn voor verbinding.

Een voorbeeldconfiguratiebestand wordt weergegeven zoals weergegeven.

Host staging-server
Hostnaam 192.168.2.103
gebruiker james
Poort 22

Een eenvoudig SSH-commando naar de externe host ziet er als volgt uit:

$ ssh staging-server

De .ssh/config-bestandsrechten

Standaard is de ~/.ssh/config clientconfiguratiebestand beschikt over de 644 bestandsrechten. U kunt dat verifiëren met behulp van de ls -la commando als volgt.

$ ls -la ~ / .ssh / config

Dit houdt in dat de eigenaar en de groep van het bestand beide lees- en schrijfrechten (rw) hebben, terwijl andere gebruikers alleen leesrechten hebben (r).

-rw-rw-r--

OPMERKING:

Wijs als vuistregel nooit schrijfrechten toe aan andere gebruikers. Dit vormt een veiligheidsrisico voor uw bestand en andere gebruikers die niet uzelf of uw groep zijn, kunnen de inhoud van het bestand wijzigen. Het toewijzen van schrijfrechten zal resulteren in de ' Slechte eigenaar of machtigingen ’ fout zoals hieronder aangegeven.

Hier kreeg het configuratiebestand de permissies 666 toegewezen. Dit houdt in dat iedereen het bestand zowel kan lezen als schrijven.

Evenzo is hetzelfde geval hier van toepassing wanneer aan het bestand 777-machtigingen zijn toegewezen. Dit houdt in dat iedereen het bestand kan lezen, schrijven en uitvoeren. Simpel gezegd, iedereen heeft alle rechten op het potentieel gevaarlijke bestand.

Best practice raadt aan om de standaardmachtigingen op . te laten staan 664 of 600, waarbij alleen de eigenaar lees- en schrijfrechten heeft (rw). Op deze manier blijft het bestand beschermd tegen wijziging door onbevoegde gebruikers.

Zorg er bovendien voor dat u de eigenaar bent van het bestand. Als het bestand wordt gewijzigd in een andere gebruiker, kan SSH de hostnaam in het configuratiebestand niet herleiden.

In het onderstaande voorbeeld is de ~/.ssh/config eigendom is ingesteld op bob: bob.

Om dit probleem op te lossen, ben ik teruggegaan naar het oorspronkelijke bestandseigendom met behulp van de chown opdracht.

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

Nu de bestandsrechten zijn teruggedraaid, kan ik nu toegang krijgen door de SSH-opdracht aan te roepen, gevolgd door de hostnaam die is opgegeven in het configuratiebestand.

$ ssh staging-server

En dat is alles wat u moet weten over het instellen van machtigingen op de ~/.ssh/config het dossier. Zorg ervoor dat u geen leesrechten instelt voor de rest van de gebruikers en zorg ervoor dat u de eigenaar bent van het bestand.