Habilitar SSH en hosts de Satellite
En situaciones de resolución de problemas y depuración, es posible que necesites acceso SSH a tus hosts de Satellite, ya sea antes o después de haberlos asignado a tu plano de control o a un clúster.
Por ejemplo, si tiene problemas para asignar hosts, puede habilitar un usuario no root para el acceso SSH a un host antes de asignarlo a un clúster.
Consulte las siguientes secciones para conocer los pasos para habilitar el acceso SSH a sus hosts.
- Habilitar SSH sin privilegios de root en hosts RHCOS antes de la asignación.
- Habilitar SSH no root en hosts RHEL antes de la asignación.
- Habilitar SSH raíz en hosts después de la asignación.
Habilitar SSH no root en hosts RHCOS antes de la asignación
RHCOS
Dado que el acceso SSH root suele estar desactivado en los hosts de CoreOS y que el acceso SSH tanto de root como de core está desactivado como parte de la asignación del host, puede conceder acceso SSH añadiendo un
nuevo usuario no root que no sea el usuario predeterminado core.
Estas instrucciones describen cómo habilitar el acceso SSH para un nuevo usuario en un host Red Hat CoreOS antes de asignarlo a un clúster o al plano de control.
Revertir estos pasos y desactivar el acceso SSH después de terminar la solución de problemas.
-
Cree un nuevo usuario
satelliteen el archivo host attach ignition que utilizó cuando creó el host CoreOS. Edite la secciónpasswddel archivo de inicio de la siguiente manera."passwd": { "users": [ { "name": "core", "sshAuthorizedKeys": [ "" ] }, { "name": "satellite", "sshAuthorizedKeys": [ "ssh-rsa AAA... KEYNAME" ], "groups": [ "sudo" ] } ] }, -
Añadir una clave pública SSH. Para crear un par de claves SSH, puede ejecutar el comando
ssh-keygen.ssh-keygen -f ~/.ssh/sat-host-access -t rsa -b 4096 -C sat-host-access -P '' -
El archivo
sat-host-access.pubtiene la clave que hay que añadir al archivo de encendido. Añada todo el contenido del archivo al script de arranque sustituyendossh-rsa AAA... KEYNAMEen el ejemplo anterior. La clave privada de SSH (sat-host-access) es la que se utiliza para conectarse al host mediante SSH.Cualquier persona con la clave privada que corresponde a la clave pública que acaba de agregar a este host y acceso de red a los nodos puede SSH en este sistema.
-
Opcional: Ejecute los siguientes comandos
journalctlpara recopilar registros para depuración.journalctl -u ibm-host-attach --no-pagerjournalctl -u ibm-host-agent --no-pagerjournalctl -u ibm-firstboot-ignition --no-pager
Habilitar SSH no root en hosts RHEL antes de la asignación
RHEL
Estas instrucciones describen cómo habilitar temporalmente el acceso SSH no root a un nodo trabajador del clúster RHEL.
Revertir estos pasos y desactivar el acceso SSH después de terminar la solución de problemas.
Antes de comenzar, asegúrese de tener acceso SSH raíz al host sin asignar.
- Si desea utilizar la misma clave SSH para este nuevo usuario que el usuario root en este host, entonces no necesita otra clave. Sin embargo, si desea utilizar un par de claves SSH diferente para este nuevo usuario, tenga ese par de claves
preparado o cree un nuevo par de claves públicas/privadas SSH en cualquier sistema que utilice para conectarse al host mediante SSH. No proporcione la clave privada a nadie. Estas instrucciones asumen que usted ha creado
este nuevo par de claves.
ssh-keygen -f ~/.ssh/sat-host-access -t rsa -b 4096 -C sat-host-access -P ''`
Ejecute los pasos restantes en el propio host, así que conéctese al host con privilegios de root antes de continuar.
-
Cree un usuario y configúrelo para que tenga acceso completo a sudo sin contraseña.
useradd -U -m -s /bin/bash satellite && mkdir -p /home/satellite/.ssh && chown -R satellite:satellite /home/satellite/ -
Añade tu clave SSH al nuevo usuario.
- Si desea utilizar la misma(s) clave(s) SSH para este usuario que para el usuario root, ejecute el siguiente comando.
cp -r /root/.ssh/authorized_keys /home/satellite/.ssh/ ``` * Si ha creado un nuevo par de claves o tiene una clave SSH pública existente, añádala al usuario `satellite` ejecutando el siguiente comando. ```sh {: pre} echo "<CONTENTS OF ~/.ssh/sat-host-access.pub OR YOUR OWN PUBLIC KEY>" >> /home/satellite/.ssh/authorized_keys && chmod 600 /home/satellite/.ssh/authorized_keys ``` -
Ejecute el mandato siguiente.
chown -R satellite:satellite /home/satellite/.ssh/authorized_keys -
Para dar a este nuevo usuario de
satelliteacceso completo a sudo sin contraseña, ejecute el siguiente comando.echo "satellite ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoersTambién puede configurar el usuario para que tenga una autoridad más limitada, configurar eso en el host en su lugar. Recomendamos que, para solucionar problemas, conceda a este usuario acceso completo a sudo. Una vez que haya terminado de solucionar el problema, puede eliminar al usuario o limitar su autoridad.
Ahora, cualquier persona con la clave privada que corresponda a la clave pública que acaba de agregar a este host y acceso de red a los nodos puede conectarse a este sistema mediante SSH con autoridad de raíz.
-
Inicie sesión en el nodo como nuevo usuario para comprobar que funciona.
ssh -i ~/.ssh/sat-host-access satellite@NODE-IP -
A continuación, ejecute el siguiente comando para verificar que puede obtener la autoridad de root de este usuario.
sudo su - root -
Opcional: comprueba los distintos archivos de registro generados durante los procesos de registro y arranque del host. Sustituye
<filepath>por los siguientes archivos para comprobar el orden. En función del problema, es posible que determinados archivos de registro estén o no estén presentes en el host.- Los registros
nohup.outde intento de registro de host. - El archivo
/var/log/firstboot.logpara el primer intento de arranque. Si el registro de host ha fallado, no tiene este archivo. - El archivo
/tmp/bootstrap/bootstrap_base.logpara el proceso de arranque base, si el primer arranque no se ha realizado correctamente. Si el registro de host ha fallado, no tiene este archivo.
tail <filepath> ``` 1. Ejecute los comandos `journalctl` para recopilar registros para depuración. ```sh {: pre} journalctl -u ibm-host-agent --no-pager ``` ```sh {: pre} journalctl -u ibm-firstboot --no-pager ``` ```sh {: pre} journalctl -u ibm-host-attach --no-pager ``` - Los registros
Habilitar SSH raíz en hosts después de la asignación
RHCOS RHEL
En ocasiones, puede ser necesario conectarse mediante SSH directamente a un host que ya esté asignado como nodo trabajador en un clúster. Por ejemplo, podría haber un problema con los nodos de los trabajadores del clúster que pierden la conectividad con el maestro del clúster. Estas instrucciones describen cómo habilitar temporalmente el acceso SSH root a un nodo trabajador de un clúster Red Hat CoreOS o RHEL en un clúster Satellite.
Revertir estos pasos y desactivar el acceso SSH después de terminar la solución de problemas.
Antes de empezar, asegúrate de que dispones de lo siguiente.
- Acceso a un sistema que tenga acceso directo a los trabajadores del clúster, para utilizarlo como sistema cliente SSH.
- Acceso de administrador a este clúster para que pueda ejecutar
oc debug node/NODE-NAME.
-
Cree un par de claves públicas/privadas SSH en su cliente SSH. No le dé la clave privada a nadie.
ssh-keygen -f ~/.ssh/sat-host-access -t rsa -b 4096 -C sat-host-access -P '' -
Verifica que se haya creado la clave pública.
cat ~/.ssh/sat-host-access.pub -
Ejecute el siguiente comando desde un sistema que tenga acceso al maestro de clúster y acceso de administrador a
kubeconfig.oc debug node/NODE-NAME -
Ejecute los siguientes comandos desde el shell en
NODE-NAMEpara habilitar el SSH raíz.chroot /hostecho "<CONTENTS OF ~/.ssh/sat-host-access.pub>" >> /root/.ssh/authorized_keyschmod 600 /root/.ssh/authorized_keys -
Establezca una variable de entorno para su
SSHD_CONFIG_FILEutilizando uno de los siguientes comandos. Tenga en cuenta que podría estar en un lugar diferente dependiendo de la versión exacta de worker que tenga, y si es así, establezca la variable de entornoSSHD_CONFIG_FILEen la ruta completa del archivo de configuraciónSSHDpara que pueda actualizarlo en los siguientes pasos.Ejemplo de comando para trabajadores de CoreOS.
export SSHD_CONFIG_FILE="/etc/ssh/sshd_config.d/40-rhcos-defaults.conf"Ejemplo de comando para trabajadores de RHEL 9.
export SSHD_CONFIG_FILE="/etc/ssh/sshd_config" -
Compruebe la configuración de
PermitRootLogin.grep ^PermitRootLogin $SSHD_CONFIG_FILE -
Establezca
PermitRootLoginenyes.sed -i "s/PermitRootLogin no/PermitRootLogin yes/g" $SSHD_CONFIG_FILE -
Verifique la configuración.
grep ^PermitRootLogin $SSHD_CONFIG_FILE -
Ejecuta los siguientes comandos para reiniciar y salir.
systemctl restart sshdexit && exit
En este punto, el acceso SSH raíz desde el sistema cliente SSH se habilita utilizando la clave privada que creó anteriormente. Tenga en cuenta que cualquier persona con esta clave privada y acceso a los nodos puede conectarse a este sistema
como root mediante SSH. Utilice el siguiente comando para SSH al nodo: ssh -i ~/.ssh/sat-host-access root@NODE-IP.