Tengo un servidor Ubuntu en Amazon EC2, que uso para el desarrollo, y hoy borré estúpidamente todo de mi ~/.ssh/authorized_keysarchivo. Afortunadamente, tengo un SSH abierto, así que todavía estoy conectado y puedo arreglar el archivo, pero cuando intento volver a colocar mi archivo de clave, no funciona. Todavía recibo el permiso denegado del servidor en mi máquina local.
authorized_keystiene los permisos 600. He intentado agregar mi clave SSH con ssh-rsa y dejar la ssh-rsa desactivada. También intenté hacer que la clave SSH fuera una sola línea, pero tampoco funcionó.
¿Hay algo más que deba hacer, como volver a cargar el archivo?
data-recovery
ssh
amazon-ec2
Dave Long
fuente
fuente

Respuestas:
Usted debe nunca se guarde el archivo con su contenido a partir de
-----BEGIN RSA PRIVATE KEY-----en el servidor, que es su privado clave. En su lugar, debe poner la clave pública en el~/.ssh/authorized_keysarchivo.Esta clave pública tiene la
.pubextensión cuando se genera usandossh-keygeny su contenido comienza conssh-rsa AAAAB3. (El formato binario se describe en las respuestas a esta pregunta ).Los permisos de
~/.sshen el servidor deben ser 700. Se~/.ssh/authorized_keyssupone que el archivo (en el servidor) tiene un modo de 600. Los permisos de la clave (privada) en el lado del cliente deben ser 600.Si la clave privada no estaba protegida con una contraseña y la puso en el servidor, le recomiendo que genere una nueva:
Puede omitir esto si está completamente seguro de que nadie puede recuperar la clave privada eliminada del servidor.
Si esto no ayuda, ejecute
sshcon opciones para más verbosidad:En el lado del servidor, puede revisar
/var/log/auth.logpara obtener más detalles.fuente
ssh-keygen -t rsay poner elid_rsa.pubarchivo recién creado en~/.ssh/authorized_keyssu servidor. Ver también docs.amazonwebservices.com/AWSEC2/latest/UserGuide/…ssh-keygen -y -f key.pem > key.pubUna forma alternativa de instalar su clave pública en la máquina remota
authorized_keys:Algunas ventajas:
No requiere
ssh-copy-idser instalado.garantiza que
mkdirfunciona antes de intentar adjuntarid_rsa.pubaauthorized_keys.fuente
mkdir -p ~/.sshparte de la respuesta dada por @MariusButucumask 077 && mkdir -p ~/.sshes todo lo que necesita hacer para asegurarse de que funcione correctamente.Si tiene autenticación basada en inicio de sesión,
ssh-copy-idúsela para agregar sus claves públicas al servidor remoto.fuente
brew install ssh-copy-idsudo port install openssh +ssh_copy_id. Las+ssh_copy_idinstalaciones se abren con la variante ssh_copy_id.fuente
La forma más fácil es copiar y pegar ...
Primero vea / copie el contenido de su clave pública local,
id_rsa.pubincluido el comienzo "ssh-rsa" hasta que termine con su dirección de correo electrónico:Luego edite
authorized_keysen el servidor y pegue el contenido de su portapapeles debajo de cualquier otra clave en ese archivo:Y guarde
Ctl+O, salga del archivoCtl+X, salga de la sesión SSHexite intente iniciar sesión nuevamente para confirmar que funcionó. Si no solicitó una contraseña, funcionó.fuente
Pensé que podía contribuir a esto, ya que se trata específicamente de instancias de AWS y todas las respuestas solo tratan el problema como un problema de Linux, como si fuera una pieza de hardware. Lo primero que debe comprender es que nunca, nunca, no debe tratar las instancias de EC2 como hardware. Eso solo creará más trabajo para usted. Trátelos como volátiles. Ese es el mayor obstáculo que veo que la gente tiene con AWS. Haga un AMI de su instancia e inyecte la clave que necesita en la nueva instancia. cloud-init se encargará de ti. Con más detalle, todo lo que tiene que hacer es usar la clave pública correcta al crear la nueva instancia a partir de la AMI del original. Si, como en los comentarios de la respuesta aprobada, desea generar su propio par de claves de archivos pub y pem, AWS le ofrece la opción de cargar sus claves públicas para usar en EC2.
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#how-to-generate-your-own-key-and-import-it-to-aws
fuente
Después de guardar la clave pública, debe guardar la clave privada en un directorio y archivo en su PC. Y en la sección de autenticación de ssh en masilla, debe apuntar al archivo de clave privada que guardó en su escritorio. Funcionará. Esto funciona para mi.
fuente
Obtenga un shell en la máquina remota donde desea colocar la clave y luego puede ejecutar esta línea para crear los archivos y directorios necesarios, establecer sus permisos y agregar la clave al archivo. Por supuesto, debe cambiar la
KEYGOESHEREparte a continuación y el comentario después.fuente
Aquí hay una variación por la cual puede tener una lista de nombres de archivos de clave pública en un archivo de texto y el gran lote de archivos de clave pública también están en el mismo directorio.
Esta variación puede ser útil si proporciona una gran lista de archivos de clave pública para importar :-)
fuente