Com establir els permisos correctes del directori SSH a Linux


Perquè SSH funcioni bé, requereix els permisos correctes al directori ~/.ssh o /home/username/.ssh: la ubicació per defecte per a tots els fitxers d'autenticació i configuració ssh específics de l'usuari. Els permisos recomanats són de lectura/escriptura/execució per a l'usuari i no han de ser accessibles per grups ni per altres.

A més, ssh també requereix que els fitxers dins del directori tinguin permisos de lectura/escriptura per a l'usuari i no siguin accessibles per altres. En cas contrari, un usuari podria trobar el següent error:

Authentication refused: bad ownership or modes for directory

Aquesta guia explica com establir els permisos correctes al directori .ssh i als fitxers emmagatzemats en ell, en sistemes Linux.

Establiu els permisos correctes del directori SSH a Linux

Si alguna vegada trobeu l'error anterior, podeu establir els permisos correctes del directori ssh al directori .ssh mitjançant l'ordre chmod.

# chmod u+rwx,go-rwx ~/.ssh
OR
# chmod  0700 ~/.ssh

Per comprovar els permisos al directori ~/.ssh, utilitzeu l'ordre ls amb els senyaladors -l i -d, de la següent manera:

# ls -ld .ssh/

Els següents són alguns dels fitxers que trobareu al directori ~/.ssh:

  • Fitxer de clau privada (p. ex. id_rsa): la clau privada per a l'autenticació, que conté informació molt sensible, per tant, ha de tenir permisos de lectura i escriptura per al propietari i no pot ser accessible pel grup i altres, en cas contrari, ssh es negarà a connectar.
  • clau pública (per exemple, fitxer .pub): la clau pública per a l'autenticació, que també conté informació sensible, per tant, hauria de tenir permisos de lectura i escriptura per al propietari, permís de només lectura per grup i altres.
  • authorized_keys: conté la llista de les claus públiques que es poden utilitzar per iniciar sessió com a usuari. No és altament sensible, però hauria de tenir permisos de lectura i escriptura per al propietari i no ser accessible ni pel grup ni per altres persones.
  • known_hosts: emmagatzema una llista de claus d'amfitrió per a tots els amfitrions en què l'usuari ssh ha iniciat sessió. Hauria de tenir permisos de lectura i escriptura per al propietari i no ser accessible per a grups i altres.
  • config: un fitxer de configuració per usuari i hauria de tenir permisos de lectura i escriptura per al propietari i no hauria de ser accessible per a grups ni altres.

Per defecte, els fitxers del directori ~/.ssh es creen amb els permisos correctes. Per comprovar els seus permisos, executeu l'ordre següent al vostre directori d'inici:

# ls -l .ssh/ 

Si ssh es queixa de permisos incorrectes en qualsevol dels fitxers anteriors, podeu establir els permisos correctes per a qualsevol dels fitxers com aquest:

# chmod u+rw,go-rwx .ssh/id_rsa
# chmod u+rw,go-rwx .ssh/id_rsa.pub
# chmod u+rw,go-rwx .ssh/authorized_keys
# chmod u+rw,go-rwx .ssh/known_hosts
# chmod u+rw,go-rwx .ssh/config
OR
# chmod 600 .ssh/id_rsa
# chmod 600 .ssh/id_rsa.pub
# chmod 600 .ssh/authorized_keys
# chmod 600 .ssh/known_hosts
# chmod 600 .ssh/config

A més, el directori d'inici d'un usuari no hauria de poder escriure el grup ni altres, tal com es mostra a la captura de pantalla següent.

# ls -ld ~

Per eliminar els permisos d'escriptura per al grup i altres al directori inicial, executeu aquesta ordre:

# chmod go-w ~
OR
# chmod 755 ~

També us agradaria llegir els següents articles relacionats amb SSH:

  • Com protegir i endurir el servidor OpenSSH
  • 5 millors pràctiques de seguretat del servidor OpenSSH
  • Com configurar l'inici de sessió SSH sense contrasenya a Linux [3 passos senzills]
  • Com bloquejar atacs de força bruta SSH amb SSHGUARD
  • Com utilitzar Port Knocking per assegurar el servei SSH a Linux
  • Com canviar el port SSH a Linux

Això és tot de moment! Utilitzeu la secció de comentaris a continuació per fer preguntes o afegir els vostres pensaments sobre aquest tema.