Activation de SSH sur les hôtes d’ Satellite
Dans les scénarios de dépannage et de débogage, un accès SSH à vos hôtes Satellite est requis, soit avant, soit après leur affectation à votre plan de contrôle ou à un cluster.
Par exemple, si vous rencontrez des problèmes lors de l'attribution des hôtes, vous pouvez autoriser un utilisateur non root à accéder à un hôte via SSH avant de l'attribuer à un cluster.
Consultez les sections suivantes pour connaître les étapes à suivre pour activer l'accès SSH à vos hôtes.
- Activation de SSH non root sur les hôtes RHCOS avant l'affectation.
- Activation de SSH non root sur les hôtes RHEL avant l'affectation.
- Activation de SSH root sur les hôtes après l'affectation.
Activation de SSH non root sur les hôtes RHCOS avant l'affectation
RHCOS
Étant donné que l'accès SSH root est généralement désactivé sur les hôtes d' CoreOS, et que l'accès SSH est désactivé à la fois sur root et core dans le cadre de l'attribution d'hôte, vous pouvez accorder l'accès SSH
en ajoutant un nouvel utilisateur non root qui n'est pas l'utilisateur par défaut d' core.
Ces instructions décrivent comment activer l'accès SSH pour un nouvel utilisateur sur un hôte Red Hat CoreOS avant de l'affecter à un cluster ou au plan de contrôle.
Annulez ces étapes et désactivez l'accès SSH une fois le dépannage terminé.
-
Créez un nouvel utilisateur
satellitedans le fichier host attach ignition que vous avez utilisé lors de la création de l'hôte CoreOS. Modifiez la section « Editpasswd» du fichier d'initialisation comme suit."passwd": { "users": [ { "name": "core", "sshAuthorizedKeys": [ "" ] }, { "name": "satellite", "sshAuthorizedKeys": [ "ssh-rsa AAA... KEYNAME" ], "groups": [ "sudo" ] } ] }, -
Ajouter une clé publique SSH. Pour créer une paire de clés SSH, vous pouvez exécuter la commande
ssh-keygen.ssh-keygen -f ~/.ssh/sat-host-access -t rsa -b 4096 -C sat-host-access -P '' -
Le fichier
sat-host-access.pubcontient la clé à ajouter au fichier d'amorçage. Ajoutez l'intégralité du contenu du fichier au script d'amorçage en remplaçantssh-rsa AAA... KEYNAMEdans l'exemple ci-dessus. La clé privéesat-host-accessest celle que vous utilisez pour vous connecter à l'hôte via SSH.Toute personne disposant de la clé privée correspondant à la clé publique que vous venez d'ajouter à cet hôte et d'un accès réseau aux nœuds peut accéder à ce système par SSH.
-
Facultatif: Exécutez les commandes
journalctlsuivantes pour rassembler les journaux à des fins de débogage.journalctl -u ibm-host-attach --no-pagerjournalctl -u ibm-host-agent --no-pagerjournalctl -u ibm-firstboot-ignition --no-pager
Activation de SSH non root sur les hôtes RHEL avant l'affectation
RHEL
Ces instructions décrivent comment activer temporairement l'accès SSH non racine à un nœud de travail du cluster RHEL.
Annulez ces étapes et désactivez l'accès SSH une fois le dépannage terminé.
Avant de commencer, assurez-vous que vous disposez d'un accès SSH root à l'hôte non attribué.
- Si vous souhaitez utiliser la même clé SSH pour ce nouvel utilisateur que l'utilisateur root sur cet hôte, vous n'avez pas besoin d'une autre clé. Cependant, si vous souhaitez utiliser une autre paire de clés SSH pour ce nouvel utilisateur,
vous devez soit avoir cette paire de clés à portée de main, soit créer une nouvelle paire de clés publiques/privées SSH sur le système que vous utilisez pour vous connecter à l'hôte via SSH. Ne communiquez la clé privée
à personne. Ces instructions supposent que vous avez créé cette nouvelle paire de clés.
ssh-keygen -f ~/.ssh/sat-host-access -t rsa -b 4096 -C sat-host-access -P ''`
Exécutez les étapes restantes sur l'hôte lui-même, donc connectez-vous à l'hôte avec les droits root avant de continuer.
-
Créez un utilisateur et configurez-le pour qu'il dispose d'un accès sudo complet sans mot de passe.
useradd -U -m -s /bin/bash satellite && mkdir -p /home/satellite/.ssh && chown -R satellite:satellite /home/satellite/ -
Ajoutez votre clé SSH au nouvel utilisateur.
- Si vous souhaitez utiliser la ou les mêmes clés SSH pour cet utilisateur que pour l'utilisateur root, exécutez la commande suivante.
cp -r /root/.ssh/authorized_keys /home/satellite/.ssh/ ``` * Si vous avez créé une nouvelle paire de clés ou si vous disposez déjà d'une clé SSH publique, ajoutez-la à l'utilisateur `satellite` en exécutant la commande suivante. ```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 ``` -
Exécutez la commande suivante.
chown -R satellite:satellite /home/satellite/.ssh/authorized_keys -
Pour donner à ce nouvel utilisateur d'
satellites un accès sudo complet sans mot de passe, exécutez la commande suivante.echo "satellite ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoersVous pouvez également configurer l'utilisateur pour qu'il ait des droits plus limités, configurez-le plutôt sur l'hôte. Nous vous recommandons, à des fins de dépannage, de donner à cet utilisateur un accès sudo complet. Une fois le dépannage terminé, vous pouvez supprimer l'utilisateur ou limiter ses droits.
Désormais, toute personne possédant la clé privée correspondant à la clé publique que vous venez d'ajouter à cet hôte et ayant accès au réseau des nœuds peut se connecter à ce système par SSH avec les droits d'administrateur.
-
Connectez-vous au nœud en tant que nouvel utilisateur pour vérifier qu'il fonctionne.
ssh -i ~/.ssh/sat-host-access satellite@NODE-IP -
Exécutez ensuite la commande suivante pour vérifier que vous pouvez obtenir les droits d'administrateur de cet utilisateur.
sudo su - root -
Facultatif : vérifiez les différents fichiers de journaux générés lors des processus d'enregistrement et de démarrage de l'hôte. Remplacez par
<filepath>les fichiers suivants, dans l'ordre indiqué. Selon le problème rencontré, certains fichiers journaux peuvent ne pas être présents sur l'hôte si le processus correspondant n'a pas été exécuté.- Journaux
nohup.outissus de la tentative d'enregistrement de l'hôte. - Fichier
/var/log/firstboot.logissu de la première tentative d'amorçage. Si l'enregistrement de l'hôte a échoué, vous ne disposez pas de ce fichier. - Fichier
/tmp/bootstrap/bootstrap_base.logpour le processus d'amorçage de base, si le premier amorçage a échoué. Si l'enregistrement de l'hôte a échoué, vous ne disposez pas de ce fichier.
tail <filepath> ``` 1. Exécutez les commandes `journalctl` pour collecter les journaux pour le débogage. ```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 ``` - Journaux
Activation du SSH root sur les hôtes après l'affectation
RHCOS RHEL
Dans certains cas de dépannage, un accès SSH est nécessaire directement sur un hôte déjà affecté en tant que nœud de travail au sein d'un cluster — par exemple, lorsque les nœuds de travail du cluster perdent la connexion avec le nœud maître du cluster. Ces instructions décrivent comment activer temporairement l'accès SSH en tant qu'utilisateur root à un nœud de travail de cluster Red Hat CoreOS ou RHEL au sein d'un cluster Satellite.
Annulez ces étapes et désactivez l'accès SSH une fois le dépannage terminé.
Avant de commencer, assurez-vous de disposer des éléments suivants.
- Accès à un système qui a un accès direct aux travailleurs du cluster, à utiliser comme système client SSH.
- Accès administrateur à ce cluster pour que vous puissiez exécuter
oc debug node/NODE-NAME.
-
Créez une paire de clés publique/privée SSH sur votre client SSH. Ne donnez la clé privée à personne.
ssh-keygen -f ~/.ssh/sat-host-access -t rsa -b 4096 -C sat-host-access -P '' -
Vérifier que la clé publique a bien été créée.
cat ~/.ssh/sat-host-access.pub -
À partir d'un système qui a accès au maître de cluster et qui dispose de l'accès d'
kubeconfigs d'administration, exécutez la commande suivante.oc debug node/NODE-NAME -
Exécutez les commandes suivantes à partir du shell sur
NODE-NAMEpour activer le SSH root.chroot /hostecho "<CONTENTS OF ~/.ssh/sat-host-access.pub>" >> /root/.ssh/authorized_keyschmod 600 /root/.ssh/authorized_keys -
Définissez une variable d'environnement pour votre
SSHD_CONFIG_FILEen utilisant l'une des commandes suivantes. L'emplacement du fichier de configuration varie selon la version du worker. Si aucun des chemins d'accès indiqués ne correspond à votre hôte, définissez la variable d'environnementSSHD_CONFIG_FILEsur le chemin d'accès complet du fichier de configurationsshdavant de continuer.Exemple de commande pour les travailleurs d' CoreOS.
export SSHD_CONFIG_FILE="/etc/ssh/sshd_config.d/40-rhcos-defaults.conf"Exemple de commande pour les travailleurs RHEL 9.
export SSHD_CONFIG_FILE="/etc/ssh/sshd_config" -
Vérifiez le paramètre
PermitRootLogin.grep ^PermitRootLogin $SSHD_CONFIG_FILE -
Définissez
PermitRootLoginsuryes.sed -i "s/PermitRootLogin no/PermitRootLogin yes/g" $SSHD_CONFIG_FILE -
Vérifiez le réglage.
grep ^PermitRootLogin $SSHD_CONFIG_FILE -
Exécutez les commandes suivantes pour redémarrer et quitter.
systemctl restart sshdexit && exit
À ce stade, l'accès SSH root depuis le système client SSH est activé à l'aide de la clé privée que vous avez créée précédemment. Notez que toute personne possédant cette clé privée et ayant accès aux nœuds peut se connecter à ce système en tant
que root via SSH. Utilisez la commande suivante pour vous connecter au nœud via SSH : ssh -i ~/.ssh/sat-host-access root@NODE-IP.