Outils personnels

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 ==
+
== 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. 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).
+
Editer /etc/inetd.conf avec vi, trouver la ligne #ssh et la décommenter.
  
Si on a ajouté "-g" il faut créer /.ssh/authorized_keys et y ajouter la clé publique du(es) client(s) utilisant ssh.
+
Redémarrer inetd (pour ESXi 3.5; pour 4.0 voir plus bas)
(voir le paragraphe OEM.TGZ ci-dessous)
 
 
 
Redémarrer inetd
 
 
  ps | grep inetd ' trouver l'ID du process
 
  ps | grep inetd ' trouver l'ID du process
 
  kill - HUP process_id
 
  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.
+
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 /.ssh
+
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.