Cuando desea tener inicios de sesión ssh basados en claves públicas para varias máquinas, ¿utiliza una clave privada y coloca la misma clave pública en todas las máquinas? ¿O tiene un par de claves privadas / públicas para cada conexión?
Cuando desea tener inicios de sesión ssh basados en claves públicas para varias máquinas, ¿utiliza una clave privada y coloca la misma clave pública en todas las máquinas? ¿O tiene un par de claves privadas / públicas para cada conexión?
Respuestas:
Utilizo una clave por conjunto de sistemas que comparten un límite administrativo común. Esto limita la cantidad de máquinas que se abren si una clave se ve comprometida, mientras que no abruma por completo mi capacidad para almacenar y administrar varios miles de claves. Las diferentes frases de contraseña en cada clave significan que incluso si se roban todas sus claves privadas y se compromete una clave, el resto no se va al inodoro con ella. Además, si hace algo estúpido (como copiar una clave privada en una máquina no confiable), nuevamente no tiene que volver a escribir todo, solo las máquinas asociadas con esa clave.
La clave pública no importa mucho, ya que, por definición, puede publicarse. Entonces, el único problema es la privacidad de sus claves privadas. Están en su propia máquina, y todos juntos, por lo que si uno está comprometido, es probable que todos lo estén. Por lo tanto, múltiples pares de llaves es solo más trabajo para el mismo efecto.
La única vez que usaría diferentes claves es para diferentes cuentas o diferentes roles, que por definición no deberían tener una superposición completa en el acceso.
Si entiendo correctamente, cada servidor tendrá su propia clave pública.
Para un usuario determinado , puede generar una clave y usarla en todas partes, siempre que la clave privada se replique en todos los hosts iniciadores. (Esto sucedería automáticamente a través de directorios de inicio montados en red y un sistema de autenticación basado en directorios como OpenLDAP, ya que el usuario siempre será "el mismo", independientemente de la estación de trabajo desde la que inicien sesión).
Fuera de un sistema de usuario basado en directorios, creo que es una Mala Idea ™ usar las mismas claves en todas partes: terminas con una reducción neta en la seguridad del sistema, ya que cualquiera que pueda obtener una clave de cualquiera de las estaciones de trabajo puede autenticarse como ese usuario al servidor remoto.
Otra alternativa, vaciada por varias grandes corporaciones (y estoy seguro de que las pequeñas también) es nunca permitir que un "usuario" use claves previamente compartidas, sino que luego inicie sesión en un cuadro de "salto" o "hub" , su
al usuario de conexión apropiado, y luego SSH desde allí a los servidores que necesitan administrar.
Además, si utiliza un sistema de administración como la plataforma de automatización de servidores de HP, la administración remota de servidores administrados se convierte en un proceso más simplificado.
su
embargo, dado que la sesión está registrada, es auditable.
su
sesiones son auditables y no las otras?
Como han dicho otros, aunque la idea de múltiples pares de claves puede parecer más segura, si existe la posibilidad de que se usen de tal manera que todos estén en el mismo lugar, entonces es más complicado y no más seguro. Múltiples frases de contraseña lo harían más seguro, pero también un gran dolor de cabeza al tratar de recordar qué frase de contraseña va con qué clave y qué clave va con qué servidor.
La respuesta más razonable para mí sería aquella en la que se sugirió hacerlo SOLO si involucra roles administrativos separados sin mucha superposición. De modo que podrían ser diferentes personas manejando los diferentes roles, o en diferentes estaciones de trabajo o lo que sea. En ese caso, tiene más cosas únicas con las que lidiar para cada rol diferente de todos modos, por lo que es más justificable.
Para facilitar la administración de múltiples servidores con capacidad SSH, puede consultar cssh . Puede combinar cssh con claves SSH con contraseña para mejorar en gran medida su capacidad de administrar múltiples servidores simultáneamente.