Tengo una instancia de una aplicación que se ejecuta en la nube en la instancia de Amazon EC2, y necesito conectarla desde mi Ubuntu local. Funciona bien en uno de ubuntu local y también en una computadora portátil. Recibí el mensaje "Permiso denegado (clave pública)" al intentar acceder a SSH a EC2 en otro Ubuntu local. Es muy extraño para mi.
Estoy pensando en algún tipo de problema con la configuración de seguridad en Amazon EC2, que tiene acceso limitado de IP a una instancia o un certificado puede necesitar regenerarse.
¿Alguien sabe alguna solución?
linux
ssh
amazon-ec2
Vorleak Chy
fuente
fuente

Respuestas:
Lo primero que debe hacer en esta situación es usar la
-vopciónssh, para que pueda ver qué tipos de autenticación se intentan y cuál es el resultado. ¿Eso ayuda a aclarar la situación?En su actualización a su pregunta, menciona "en otro Ubuntu local". ¿Ha copiado la clave privada ssh a la otra máquina?
fuente
ssh -i <keyfile> bitname@<ec2-address>. Desafortunadamente, la-vopción no me ayudó a encontrar esto, ¡pero sigue siendo muy útil para verificar!/var/log/auth.log, a veces verá los siguientes mensajes:Authentication refused: bad ownership or modes for file /var/lib/jenkins/.ssh/authorized_keyso algo másComo no se ha mencionado explícitamente, sshd es por defecto muy estricto en los permisos para los
authorized_keysarchivos. Por lo tanto, siauthorized_keysse puede escribir para alguien que no sea el usuario o si alguien que no sea el usuario puede hacerlo, se negará a autenticarse (a menos que sshd esté configurado conStrictModes no)Lo que quiero decir con "se puede hacer que se pueda escribir" es que si alguno de los directorios principales es escribible para otra persona que no sea el usuario, los usuarios autorizados a modificar esos directorios pueden comenzar a modificar los permisos de tal manera que puedan modificar / reemplazar claves autorizadas.
Además, si el
/home/username/.sshdirectorio no es propiedad del usuario y, por lo tanto, el usuario no tiene permisos para leer la clave, puede tener problemas:Tenga en cuenta que jane no posee el
.ssharchivo. Solucione esto a través deEste tipo de problemas de permisos del sistema de archivos no se mostrarán
ssh -vy ni siquiera se mostrarán en los registros sshd (!) Hasta que establezca el nivel de registro en DEBUG./etc/ssh/sshd_config. Quieres una línea que se leaLogLevel DEBUGallí en alguna parte. Vuelva a cargar el servidor SSH utilizando el mecanismo proporcionado por la distribución. (service sshd reloaden RHEL / CentOS / Scientific.) Una recarga elegante no eliminará las sesiones existentes./var/log/auth.logen distribuciones basadas en Debian;/var/log/secureen RHEL / CentOS / Scientific.)Es mucho más fácil averiguar qué está mal con la salida de depuración que incluye errores de permisos del sistema de archivos. ¡Recuerde revertir el cambio
/etc/ssh/sshd_configcuando haya terminado!fuente
Authentication refused: bad ownership or modes for directoryRecibí este error porque olvidé agregar la
-lopción. Mi nombre de usuario local no era el mismo que en el sistema remoto.Esto no responde a su pregunta, pero llegué aquí buscando una respuesta a mi problema.
fuente
ssh host -l useres lo mismo quessh user@host, ¿verdad?Recibí este mensaje en una nueva instancia basada en Ubuntu AMI. Estaba usando la opción -i para proporcionar el PEM pero todavía mostraba el "Permiso denegado (clave pública)".
Mi problema era que no estaba usando el usuario correcto. Al ejecutar el ssh con ubuntu @ ec2 ... funcionó de manera normal.
fuente
sudo, por eso no estaba funcionando.Algo que es más fácil de leer que
ssh -v(en mi opinión, por supuesto), estail -f /var/log/auth.log. Eso debe ejecutarse en el servidor al que intenta conectarse, mientras intenta conectarse. Mostrará errores en texto plano.Esto me ayudó a resolver mi problema:
fuente
tail -f /var/log/secureVerifique su archivo / etc / ssh / sshd_config . Allí, encuentra la línea que dice
Esa línea debe modificarse para decir sí en lugar de no. Además, reinicie el servidor sshd después.
fuente
/etc/ssh/sshd_config, si ni siquiera podemos ingresar al servidor?sudo service sshd reloadQuizás no sea relevante para el póster actual, pero podría ayudar a otros que encuentren esto al buscar respuestas a situaciones similares. En lugar de permitir que Amazon genere el par de claves ssh, le recomiendo cargar su propia clave ssh pública predeterminada estándar a Amazon y especificarla cuando ejecute una instancia EC2.
Esto le permite colocar la sintaxis de tipo "-i" en ssh, usar rsync con opciones estándar y también le permite usar la misma clave ssh en todas las regiones EC2.
Escribí un artículo sobre este proceso aquí:
fuente
Curiosamente, mi problema resultó ser que el servidor se había reiniciado y se le emitió un nuevo nombre DNS. Estaba usando el antiguo nombre DNS. Sé que esto suena estúpido, pero me tomó un tiempo entenderlo.
fuente
Si estás intentando conectarte a un teléfono CyanogenMod con Dropbear, debes ejecutar las siguientes líneas para asegurarte de que todo funcione correctamente:
o
y
Esto me lo arregló, de lo contrario nada se puede conectar.
fuente
Si está utilizando CentOS 5, es posible que desee establecer
StrictModes noen/etc/ssh/sshd_config. Estoy compartiendo el directorio / home usando NIS / NFS, y configuré todos los permisos correctamente, pero siempre me solicitó la contraseña. Después de configurarStrictModes no, el problema desapareció!fuente
La respuesta de Greg explica cómo solucionar mejor los problemas, sin embargo, el problema real es que tiene una clave ssh configurada en un lado de la transacción (el cliente), que intenta la autenticación de clave pública en lugar de la autenticación basada en contraseña. Como no tiene la clave pública correspondiente en la instancia EC2, esto no funcionará.
fuente
Tuve el mismo problema, y después de probar toneladas de soluciones que no funcionaron, abrí el puerto SSH en el firewall de mi enrutador (el panel de control del firewall de mi enrutador es un desastre, por lo que es difícil saber qué está pasando). De todos modos, eso lo solucionó :)
Súper sangriento y molesto que el error que obtienes es Permiso denegado, lo que implica que se hizo algún tipo de conexión, grr.
fuente
Tenía el mismo problema, aunque supuestamente seguía todos los pasos, incluidos
Sin embargo, había comenzado mi instancia en la región us-west-1. Entonces, el comando anterior también debe especificar eso.
Después de este comando, pude ingresar a la instancia. Pasé un rato antes de darme cuenta del problema y espero que esta publicación ayude a otros.
fuente
Este es un caso raro, pero si tiene habilitado selinux y está usando nfs para el directorio con las claves autorizadas (por ejemplo, directorios de inicio compartidos), deberá deshabilitar selinux (no recomendado por razones de seguridad, pero puede deshabilitarlo temporalmente) para ver si esto está causando el problema) o permitir que selinux use los directorios de inicio de nfs. No tengo claros los detalles, pero esto funcionó para mí.
setsebool -P use_nfs_home_dirs 1fuente
Acabo de experimentar el mismo problema después de agregar inadvertidamente permisos de escritura grupal al directorio de inicio de los usuarios.
Descubrí que esta era la causa al ejecutar
tail -f /var/log/secureen la máquina y ver el errorAuthentication refused: bad ownership or modes for directory /home/<username>.fuente