SSH Key Permissions Configuración de Chmod?

63

Necesito usar SSH en mi máquina para acceder a mi sitio web y sus bases de datos (configurando un enlace simbólico, pero estoy divagando).

Siguiente problema: ingreso el comando: ssh-keygen -t dsa
Para generar un par de claves dsa público / privado. Lo guardo en el valor predeterminado ( /home/user/.ssh/id_dsa): e ingrese Enter passphrase dos veces

entonces me devuelve esto:

ADVERTENCIA: ¡ARCHIVO DE CLAVE PRIVADO NO PROTEGIDO!
Los permisos 0755 para '/home/etc.ssh/id_rsa' están demasiado abiertos. Se recomienda que otras personas no puedan acceder a sus archivos de clave privada. Esta clave privada será ignorada. permisos incorrectos: ignorar clave: [entonces la RUTA DE ARCHIVO en VAR / LIB / ALGUNA PARTE]

Ahora, para solucionar esto, intenté ...

sudo chmod 600 ~/.ssh/id_rsa         sudo chmod 600 ~/.ssh/id_rsa.pub    

Pero poco después de que mi computadora se congeló, y al volver a iniciar sesión hubo un could not find .ICEauthority error. Resolví este problema y eliminé los archivos SSH, pero quiero poder usar los permisos correctos para evitar estos problemas en el futuro. ¿Cómo debo configurar ICEauthority, o dónde debo guardar las claves SSH, o qué permisos deberían tener? ¿Sería mejor usar una máquina virtual?

Todo esto es muy nuevo y estoy en una curva de aprendizaje muy empinada, por lo que agradezco cualquier ayuda.

crissixpaul
fuente
error tipográfico: lo siento, solo se generó un conjunto de claves.
crissixpaul
Los permisos para el directorio .ssh son tan importantes como los permisos clave. Debe ser 600. Para solucionarlo ejecute: chmod -R 600 ~/.ssh.
KWubbufetowicz
44
en realidad, los permisos de directorio .ssh deben ser 700, no 600. El permiso de ejecución es el que le da acceso a lo que está dentro de ese directorio. Entonces, los comandos correctos deben ser chmod 700 $HOME/.sshychmod 600 $HOME/.ssh/id_rsa
MelBurslan
El error sobre .ICEauthority no está relacionado con los chmodcomandos que muestra. O es una coincidencia o has ejecutado otros comandos que no nos estás mostrando.
Gilles 'SO- deja de ser malvado'

Respuestas:

92

chmod 600 ~/.ssh/id_rsa; chmod 600 ~/.ssh/id_rsa.pub(es decir chmod u=rw,go= ~/.ssh/id_rsa ~/.ssh/id_rsa.pub) son correctos.

chmod 644 ~/.ssh/id_rsa.pub(es decir chmod a=r,u+w ~/.ssh/id_rsa.pub) también sería correcto, pero chmod 644 ~/.ssh/id_rsa(es decir chmod a=r,u+w ~/.ssh/id_rsa) no lo sería. Su clave pública puede ser pública, lo que importa es que su clave privada es privada.

Además, su .sshdirectorio debe ser editable solo por usted: chmod 700 ~/.ssho chmod u=rwx,go= ~/.ssh. Por supuesto, debe poder leerlo y acceder a los archivos que contiene (permiso de ejecución). No es directamente perjudicial si otros pueden leerlo, pero tampoco es útil.

No es necesario sudo. No lo use sudopara manipular sus propios archivos, eso solo puede conducir a errores.

El error acerca de .ICEauthorityno está relacionado con los chmodcomandos que muestra. O es una coincidencia o has ejecutado otros comandos que no nos estás mostrando.

Gilles 'SO- deja de ser malvado'
fuente
¿Cuáles deben ser los permisos en ~ / .ssh / known_hosts?
nikc
0

Quiero agregar a las respuestas anteriores que para mí mi directorio de inicio ( ~/) también necesitaba tener los permisos 755, independientemente de los permisos ~/.sshy los archivos que contenga. (Esto estaba en un Synology NAS, podría no aplicarse a todos los Linux)

hoelk
fuente