Solucionar problemas de acceso
En esta página se ofrecen consejos para solucionar problemas de acceso a la solución Bare Metal.
Comprueba si tu pregunta o problema ya se ha tratado en la página Problemas conocidos y limitaciones.
El cliente SSH no puede conectarse
Si tu cliente SSH no puede conectarse a un servidor, es posible que veas uno de los siguientes errores:
connection timeout
oconnection refused
: el cliente SSH no puede conectarse.Permission denied (publickey)
: el cliente SSH no puede autenticarse.
Para diagnosticar las conexiones SSH fallidas, sigue estos pasos:
Prueba la conectividad.
Asegúrate de que se pueda acceder al host y de que el puerto SSH (22) esté abierto con los comandos
ping
,traceroute
ync
.ping SERVER_NAME
traceroute SERVER_NAME
echo "" | nc SERVER_NAME 22
Si esto no funciona, es posible que el problema se encuentre en la capa de red y no en SSH.
Examina la salida de depuración del lado del cliente.
Activa la verbosidad del protocolo SSH.
ssh -v SERVER_NAME -i ~/.ssh/id_ecdsa
El comando imprime la salida de depuración que muestra los eventos clave del protocolo SSH del lado del cliente.
En el siguiente ejemplo de salida se muestra que el cliente ha enviado su clave, pero el servidor la ha rechazado. El servidor ha pedido que la autenticación continúe con otra clave pública, pero el cliente no tiene más claves que ofrecer.
.. .. .. debug1: Server host key: ecdsa-sha2-nistp256 SHA256:V9cRYdqcAJv+RPfN+oofNTVdUxs6VlocP4uMWOxeGKI debug1: Host 'bms-server' is known and matches the ECDSA host key. debug1: Found key in /root/.ssh/known_hosts:1 debug1: rekey after 134217728 blocks debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: rekey after 134217728 blocks debug1: SSH2_MSG_EXT_INFO received debug1: kex_input_ext_info: server-sig-algs=
debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Offering ECDSA public key: /root/.ssh/id_ecdsa debug1: Authentications that can continue: publickey debug1: No more authentication methods to try. Permission denied (publickey). Si la salida detallada de SSH no indica claramente la causa del mensaje de error, ejecuta el comando
strace
:strace ssh SERVER_NAME -i ~/.ssh/id_ecdsa > strace-ssh.txt 2>&1
Examina la salida de
strace
para ver si hay errores relacionados con el problema principal.En algunos casos, la salida de depuración del lado del cliente no es suficiente para identificar el problema. También puede que tengas que ejecutar un rastreo del lado del servidor para encontrar el error. Hasta que no puedas acceder a tu servidor mediante SSH, utiliza la consola serie interactiva para llevar a cabo los pasos siguientes.
Examina el resultado de depuración del lado del servidor.
Busca los ajustes de SSH actuales.
grep -v "^#" /etc/ssh/sshd_config | grep -v "^$"
Para obtener información detallada sobre SSH, define los siguientes parámetros en el archivo
/etc/ssh/sshd_config
.SyslogFacility AUTH LogLevel DEBUG
Para aplicar los cambios, reinicia el servicio.
service sshd restart
En el lado del cliente, ejecuta el comando
ssh
y extrae los mensajessshd
de los registros:grep sshd /var/log/messages
También puedes exportar todos los mensajes relevantes del periodo en cuestión con el siguiente comando:
journalctl -u sshd -S "START_TIME" -U "END_TIME" --utc
Haz los cambios siguientes:
START_TIME
: hora de inicio del periodo en formatoyyyy-mm-dd hh:mm:ss
.END_TIME
: hora de finalización del periodo en formatoyyyy-mm-dd hh:mm:ss
.
Ejemplo:
journalctl -u sshd -S "2023-04-25 18:38:00" -U "2023-04-25 18:40:00" --utc
Para solucionar estos problemas, sigue estos pasos:
Verifica si el archivo de claves de cliente tiene permisos de solo lectura (marca
400
). De lo contrario, el cliente SSH no lo aceptará.Para definir la marca de solo lectura de la clave privada que se está usando, ejecuta el siguiente comando:
chmod 400 ~/.ssh/id_ed25519
En el lado del servidor, comprueba si la clave pública del cliente se ha especificado en el archivo de configuración local del usuario correspondiente (
~/.ssh/authorized_keys
).En algunos casos, el problema puede estar relacionado con la versión del protocolo SSH o con el algoritmo SSH. Las salidas de depuración del lado del servidor y del lado del cliente pueden indicar este problema. Normalmente, las páginas de
man
parassh
ysshd_config
proporcionan los detalles para mantener la configuración necesaria. Por ejemplo, para buscar los algoritmos de intercambio de claves o los cifrados compatibles, usa los siguientes comandos:# Find key exchange algorithms ssh -Q kex # Find the symmetric encryption ciphers ssh -Q cipher