Outils personnels

Activation ssh sur ESXi

De wikiGite

ssh

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. 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).

Si on a ajouté "-g" il faut créer /.ssh/authorized_keys et y ajouter la clé publique du(es) client(s) utilisant ssh.
(voir le paragraphe OEM.TGZ ci-dessous)

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

Redémarrer inetd

ps | grep inetd ' trouver l'ID du process
kill - HUP process_id

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 !

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.