Configurer LAM pour SSH

La version de LAM utilisée est la 6.5.1.

Configurer LAM de manière à ce que les transactions se fassent via ssh est relativement simple, cependant il y a quelques règles à observer si l'on veut que tout fonctionne correctement.

1. Configuration du fichier .cshrc

Tout d'abord, on doit s'assurer que le script lancé par le shell lancé après ssh soit « propre », c'est à dire qu'il ne doit pas générer de message d'erreur. Dans le cadre de notre étude de cas, lors d'une connexion sur sciora ou amipc7, le shell lancé est tcsh, nous avons donc dû modifier les fichiers .cshrc et .login.

Maintenant on doit configurer LAM de manière à ce qu'il utilise ssh pour ses transactions et non rsh comme il le fait par défaut. Pour cela, on doit modifier une variable d'environnement, sous ksh, bash :

% set LAMRSH= « ssh -x »
% export LAMRSH

Sous csh ou tcsh :

% setenv LAMRSH « ssh -x »

On peut inclure cette commande dans le fichier .cshrc.

Pour pouvoir obtenir un fichier .cshrc convenable pour pouvoir lancer LAM, on peut ajouter dans le fichier des conditions de manière à ne pas avoir d’erreur :

if (($HOST != sciora) && ($HOST != amipc7) && ($HOST != amipc6)) then
# ajouter ici les lignes générant des erreurs
# lors de la connexion sur sciora
else
setenv LAMRSH « ssh –x »
endif

2. Authentification sous ssh

Ensuite on peut configurer ssh de manière à ce qu'on n'ait pas à retaper le mot de passe à chaque connexion. En effet, à chaque fois que l'on « boote » LAM, un mot de passe est demandé pour chaque machine, ce qui s'avère fastidieux dès que le nombre de machines connecter est important.

Tout d'abord on doit générer une clé RSA pour ssh, pour cela on utilise la commande ssh-keygen :

%ssh-keygen

Un emplacement et un nom sont demandés pour la création du fichier, il est néanmoins recommandé de conserver l'emplacement par défaut (~/.ssh/identity)

On doit ensuite copier et renommer le fichier ~/.ssh/identity.pub généré par ssh-keygen en authorized_keys :

% cd ~/.ssh
% cp identity.pub authorized_keys

On doit ensuite vérifier les droits d'accès à ces fichiers, les fichiers du répertoire ~/.ssh doivent avoir les droits suivants :

-rw-r--r--      authorized_keys
-rw-------      identity
-rw-r--r--      identity.pub
-rw-------      known_hosts

Vérifier que les répertoires $HOME et $HOME/.ssh ont les droits correspondants à 755 de manière à ce qu'ils soient accessibles partout sur le réseau.

Maintenant, on doit lancer le programme ssh-agent, c'est ce programme qui est responsable du fait que l'on n'aura pas à retaper un mot de passe à chaque connexion. Pour le lancer, il faut taper la commande suivante :

% eval `ssh-agent`

Pour ne pas avoir à taper cette commande à chaque fois que l'on se connecte :

% ssh-add

Voilà, maintenant si tout se passe bien ssh est configuré.

3. Création d’un fichier « host »

Reste ensuite à créer un fichier lamhost où l'on spécifie les machines à employer pour l'exécution du programme, par exemple :

lamhost :
sciora
amipc7
amipc6

Pour plus de sécurité on peut spécifier le nom complet des machines :

lamhost :
sciora.univ-bpclermont.fr
amipc7.univ-bpclermont.fr
amipc6.univ-bpclermont.fr

Néanmoins cette solution permet d’accéder aux machines par un chemin extérieur au réseau, ces accès peuvent être interdits par l’administrateur.

Il est possible de spécifier pour une machine le fait qu'on fasse tourner plusieurs processus :

lamhost :
sciora.univ-bpclermont.fr CPU=2
amipc7.univ-bpclermont.fr

Sur cet exemple, on demandera à ce que 2 processus tournent sur sciora. Cette possibilité est très utile pour effectuer des tests lorsque l'on ne dispose que de peu de machines. On « bootera » LAM par la commande suivante :

%lamboot -v lamhost

lamhost est le fichier contenant le nom des machines du réseau.