Activation ssh sur ESXi : Différence entre versions
De wikiGite
(5 révisions intermédiaires par un autre utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | == | + | == SSH == |
+ | === Jusqu'à ESXi 4.0 === | ||
Sur la console du serveur ESXi, commencer par '''configurer le clavier en français''' par F2 (modification prise en compte tout de suite). | Sur la console du serveur ESXi, commencer par '''configurer le clavier en français''' par F2 (modification prise en compte tout de suite). | ||
Puis Ctrl-Alt-F1, taper en aveugle "unsupported". Donner le mot de passe root (pas de mot de passe par défaut, penser à changer ça !). | Puis Ctrl-Alt-F1, taper en aveugle "unsupported". Donner le mot de passe root (pas de mot de passe par défaut, penser à changer ça !). | ||
− | Editer /etc/inetd.conf avec vi, trouver la ligne #ssh et la décommenter | + | Editer /etc/inetd.conf avec vi, trouver la ligne #ssh et la décommenter. |
− | + | Redémarrer inetd (pour ESXi 3.5; pour 4.0 voir plus bas) | |
− | |||
− | |||
− | |||
ps | grep inetd ' trouver l'ID du process | ps | grep inetd ' trouver l'ID du process | ||
kill - HUP process_id | kill - HUP process_id | ||
− | ' | + | A partir d'une console ssh lancée du poste devant se connecter par la suite : |
+ | cd / | ||
+ | mkdir .ssh | ||
+ | vi .ssh/authorized_keys | ||
+ | Y copier le contenu du fichier ~/.ssh/id_dsa.pub du poste local. Sauvegarder par :wq, puis | ||
+ | chmod -R 600 .ssh | ||
+ | |||
+ | Editer à nouveau /etc/inetd.conf, ajouter "-g" au bout de la ligne (le "-i" signifie qu'il sera lancé en service par inetd, il doit déjà y être, et le -g interdit la connexion root par mot de passe), et redémarrer inetd. | ||
+ | |||
+ | '''(voir le paragraphe OEM.TGZ ci-dessous)''' | ||
− | Ajouter un utilisateur via le VIClient pour pouvoir se connecter tout de même si on a pas la clé (dans ce cas il demandera le mot de passe de l'utilisateur, l'interdiction ne vaut que pour root). | + | '''NOTE''' : sur ESXi 4.0, le redémarrage d'inetd ne suffit pas, ni celui des services (service.sh restart). Il faut redémarrer ESXi, mais lire le paragraphe OEM.TGZ ci-dessous avant ! |
+ | |||
+ | === A partir d'ESXi 4.1 === | ||
+ | La console locale ("Local Tech support") est désormais désactivée par défaut. On l'active par F2, "Troubleshooting options". | ||
+ | |||
+ | Mais ce n'est plus vraiment nécessaire de l'activer juste pour autoriser le SSH : dans ce même écran, on a aussi directement la possibilité d'activer le "Remote Tech support", en d'autres termes : SSH. | ||
+ | ----------------- | ||
+ | |||
+ | == Ajout d'un utilisateur == | ||
+ | Ajouter un utilisateur via le VIClient pour pouvoir se connecter tout de même si on a pas la clé (perte de clé, changement de poste...)(dans ce cas il demandera le mot de passe de l'utilisateur, l'interdiction ne vaut que pour root). | ||
Mais attention : l'utilisateur créé n'a pas le droit par défaut de lancer une console sur le serveur. Il faut donc se connecter en root, éditer /etc/passwd | Mais attention : l'utilisateur créé n'a pas le droit par défaut de lancer une console sur le serveur. Il faut donc se connecter en root, éditer /etc/passwd | ||
Ligne 23 : | Ligne 39 : | ||
*remplacer "/bin/false" par "/bin/ash". | *remplacer "/bin/false" par "/bin/ash". | ||
On peut alors l'utiliser pour se connecter par ssh. A partir du poste dont la clé publique est dans l'authorized_keys, il ne demandera pas de mot de passe ni pour l'utilisateur ni pour root. A partir d'un autre poste, l'utilisateur pourra se connecter avec son mot de passe, mais root sera refusé. (utiliser dans ce cas "su" une fois connecté avec l'utilisateur). | On peut alors l'utiliser pour se connecter par ssh. A partir du poste dont la clé publique est dans l'authorized_keys, il ne demandera pas de mot de passe ni pour l'utilisateur ni pour root. A partir d'un autre poste, l'utilisateur pourra se connecter avec son mot de passe, mais root sera refusé. (utiliser dans ce cas "su" une fois connecté avec l'utilisateur). | ||
+ | |||
== oem.tgz == | == oem.tgz == | ||
Lorsque ESXi redémarre, l'arborescence de base est remise à zéro. Le répertoire /.ssh et son authorized_keys notamment, sont supprimés. | Lorsque ESXi redémarre, l'arborescence de base est remise à zéro. Le répertoire /.ssh et son authorized_keys notamment, sont supprimés. | ||
Ligne 28 : | Ligne 45 : | ||
On peut forcer leur "re-création" en modifiant le fichier /bootbank/oem.tgz. | On peut forcer leur "re-création" en modifiant le fichier /bootbank/oem.tgz. | ||
− | cd /bootbank | + | cd /tmp |
− | tar -cvzf oem.tgz | + | mkdir oem |
+ | cd oem | ||
+ | tar -xvzf /bootbank/oem.tgz | ||
+ | cp -r /.ssh . | ||
+ | tar -cvzf oem.tgz * .ssh | ||
+ | cp oem.tgz /bootbank | ||
Le répertoire sera recréé avec son contenu au prochains redémarrages. | Le répertoire sera recréé avec son contenu au prochains redémarrages. |
Version actuelle datée du 2 mars 2011 à 13:47
SSH
Jusqu'à ESXi 4.0
Sur la console du serveur ESXi, commencer par configurer le clavier en français par F2 (modification prise en compte tout de suite).
Puis Ctrl-Alt-F1, taper en aveugle "unsupported". Donner le mot de passe root (pas de mot de passe par défaut, penser à changer ça !).
Editer /etc/inetd.conf avec vi, trouver la ligne #ssh et la décommenter.
Redémarrer inetd (pour ESXi 3.5; pour 4.0 voir plus bas)
ps | grep inetd ' trouver l'ID du process kill - HUP process_id
A partir d'une console ssh lancée du poste devant se connecter par la suite :
cd / mkdir .ssh vi .ssh/authorized_keys
Y copier le contenu du fichier ~/.ssh/id_dsa.pub du poste local. Sauvegarder par :wq, puis
chmod -R 600 .ssh
Editer à nouveau /etc/inetd.conf, ajouter "-g" au bout de la ligne (le "-i" signifie qu'il sera lancé en service par inetd, il doit déjà y être, et le -g interdit la connexion root par mot de passe), et redémarrer inetd.
(voir le paragraphe OEM.TGZ ci-dessous)
NOTE : sur ESXi 4.0, le redémarrage d'inetd ne suffit pas, ni celui des services (service.sh restart). Il faut redémarrer ESXi, mais lire le paragraphe OEM.TGZ ci-dessous avant !
A partir d'ESXi 4.1
La console locale ("Local Tech support") est désormais désactivée par défaut. On l'active par F2, "Troubleshooting options".
Mais ce n'est plus vraiment nécessaire de l'activer juste pour autoriser le SSH : dans ce même écran, on a aussi directement la possibilité d'activer le "Remote Tech support", en d'autres termes : SSH.
Ajout d'un utilisateur
Ajouter un utilisateur via le VIClient pour pouvoir se connecter tout de même si on a pas la clé (perte de clé, changement de poste...)(dans ce cas il demandera le mot de passe de l'utilisateur, l'interdiction ne vaut que pour root).
Mais attention : l'utilisateur créé n'a pas le droit par défaut de lancer une console sur le serveur. Il faut donc se connecter en root, éditer /etc/passwd
vi /etc/passwd
sur la ligne correspondant à l'utilisateur ,
- remplacer "/home/nom_de_l_utilisateur" par "/",
- remplacer "/bin/false" par "/bin/ash".
On peut alors l'utiliser pour se connecter par ssh. A partir du poste dont la clé publique est dans l'authorized_keys, il ne demandera pas de mot de passe ni pour l'utilisateur ni pour root. A partir d'un autre poste, l'utilisateur pourra se connecter avec son mot de passe, mais root sera refusé. (utiliser dans ce cas "su" une fois connecté avec l'utilisateur).
oem.tgz
Lorsque ESXi redémarre, l'arborescence de base est remise à zéro. Le répertoire /.ssh et son authorized_keys notamment, sont supprimés.
On peut forcer leur "re-création" en modifiant le fichier /bootbank/oem.tgz.
cd /tmp mkdir oem cd oem tar -xvzf /bootbank/oem.tgz cp -r /.ssh . tar -cvzf oem.tgz * .ssh cp oem.tgz /bootbank
Le répertoire sera recréé avec son contenu au prochains redémarrages.