Clave pública/privada configurada en CentOS6: todavía me permite conectarme sin clave privada

Clave pública/privada configurada en CentOS6: todavía me permite conectarme sin clave privada

Tengo un VPS con CentOS 6. He notado muchos intentos de inicio de sesión a través de SSH, por lo que quiero bloquearlo con autenticación basada en claves. Esto es lo que he hecho hasta ahora....

Ejecuté lo siguiente en mi máquina cliente (OSX)

ssh-keygen -t rsa

Hice esto con la configuración predeterminada (sin contraseña, nombres predeterminados, etc.)

Establecer los siguientes permisos en mi cliente

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa

Copié mi clave pública en la raíz de mi carpeta de usuario en mi VPS usando el siguiente comando (nombre falso/ip)

scp id_rsa.pub [email protected]:/home/fakeuser/id_rsa.pub

Aquí noté que NO tenía un archivo Authorized_keys dentro de mi .ssh. Entonces usé el tacto para crearlo. Luego usé CAT para copiar el contenido del .pub en el archivo autorizado_keys

cat id_rsa.pub >> ~/.ssh/authorized_keys

y establezca los permisos apropiados en .ssh y autorizado_keys

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

En /etc/ssh/sshd_config descomenté lo siguiente

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

Luego reinicié sshd

service sshd restart

Por lo que leí, esto es todo lo que debería hacer para habilitar la autenticación de clave pública. Sin embargo, cuando intento utilizar SSH sin proporcionar la clave privada -i, puedo acceder desde todos los dispositivos.

Respuesta1

Si una clave de cliente está en la ubicación predeterminada, ~/.ssh/id_$algse usa automáticamente a menos que use -o IdentitiesOnly=yes(o la entrada del archivo de configuración equivalente) para deshabilitarla. Si puede conectarse desde un cliente que no tiene una copia de la clave privadaysin especificar una contraseña, entonces la autenticación en su servidor no está configurada correctamente. Si quieres usarsoloclave privada->autenticación de clave pública, configurar PasswordAuthentication no.

PD: anything >>file(y anything >filetambién) crea el archivo si no existe, no es necesario touch. Y el directorio remoto predeterminado scpes su directorio de inicio, por lo que normalmente no es necesario especificarlo.

También:

RSAAuthenticationes para SSHv1, que se rompió hace décadas y nunca debe usarse y está deshabilitado de forma predeterminada en todas las versiones de OpenSSH durante mucho tiempo y se eliminó por completo del lado del servidor a partir de 7.4, aunque espero que CentOS 6 probablemente no tenga una versión tan reciente.

PubkeyAuthentication yesy AuthorizedKeysFile .ssh/authorized_keys(además de authorized_keys2que es una reliquia y ya no se usa) son los valores predeterminados, por lo que no es necesario descomentarlos.

Respuesta2

Debe deshabilitar explícitamente la autenticación de contraseña en el servidor si solo desea permitir claves públicas/privadas. En su /etc/ssh/sshd_configcambio o agregue la configuración:

PasswordAuthentication no

También me gusta desactivar explícitamente todos los demás tipos de autenticación que no uso, como Kerberos y GSSAPI.

información relacionada