Cet exercice a pour but de vous présenter la commande ssh.
Cette commande vous permet de lancer un shell sur une machine distante de façon sécurisée.
Elle vous sera utile pour travailler sur les machines de l'école lorsque vous n'y êtes pas physiquement.
Le but de cet exercice n'est pas de vous faire un cours complet sur ssh, pour cela, nous invitons à consulter le cours se trouvant ici.
Les salles machines sont toutes connectées derrière une passerelle nommée ssh.imtbs-tsp.eu.
Cette passerelle laisse passer toutes les connexions sortantes mais bloque les connexions entrantes.
Dans ce TP, nous allons faire « comme si » nous étions à l'extérieur du réseau
de l'école : nous allons nous connecter à la passerelle avant de
nous connecter à une des machines.
De fait, si vous êtes connectés sur un réseau interne de l'école (en filaire, ou par Eduroam en Wifi), l'accès à la passerelle se fait avec le nom court ssh, au lieu de ssh.imtbs-tsp.eu.
Ouvrez un terminal et lancez la commande
hostname.
Quel est le nom de votre machine ?
À Télécom SudParis, la nomenclature est : a001 indique la salle (A001-002), et 08 indique le numéro de la machine.
Avant d'aller plus loin, lancez la fabuleuse commande xeyes.
Cette commande affiche une fabuleuse paire d'yeux qui suivent votre pointeur.
Si vous ne l'avez pas sur votre ordinateur, ce n'est pas grave : après la connexion par SSH dans les questions suivantes, vous pourrez la lancer !
Fermez le processus xeyes puis utilisez la commande ssh pour vous connecter à la passerelle.
Pour vous guider, vous devriez écrire ssh mon-login@ssh.imtbs-tsp.eu pour vous connecter (pensez à utiliser la commande man pour savoir comment utiliser la commande ssh de façon plus avancée).
Comme mentionné plus haut, si vous êtes déjà sur un réseau interne de l'école, utilisez ssh mon-login@ssh.
Qu'affiche maintenant la commande hostname ?
Cette remarque est importante, conservez ces informations quelques part, car vous en aurez très probablement
besoin plus tard dans vos études ou votre vie professionnelle.
Comme vous vous connectez pour la première fois à la passerelle,
ssh
vous pose une question.
Avant de répondre « yes », lisez attentivement ce que vous raconte
ssh.
De façon générale, si l'authenticité d'une machine ne peut pas être établie, cela signifie
que :
- la machine sur laquelle vous vous connectez n'est pas celle que vous croyez.
Le service qui trouve une machine à partir de son nom a très probablement été piraté.
Si vous avez un doute, fuyez pauvres fous !
Contactez d'urgence l'administrateur de la machine et surtout, ne répondez pas yes
aveuglément.
- la machine sur laquelle vous vous connectez vient d'être mise à jour. Dans
ce cas, son identité a changé. Après vous être assuré(e) que c'était le cas,
vous pouvez détruire l'entrée correspondante dans le fichier ~/.ssh/known_hosts
en lançant ssh-keygen -R hostname, où hostname est le nom
de la machine sur laquelle vous vous connectez.
Vous pourrez ensuite vous reconnecter comme si c'était une nouvelle machine;
- vous vous connectez pour la première fois à la machine. La procédure devrait être d'obtenir son
identité par un autre canal (par exemple en mains propres de la part de l'administrateur) et de
la comparer à celle qui vous est affichée par ssh.
Dans le contexte de cet exercice, et depuis le réseau local de l'école, vous pouvez raisonnablement
répondre
yes sans danger. Vous pouvez néanmoins vérifier l'authenticité de la machine
en regardant
ici.
ssh ssh.imtbs-tsp.eu
$ hostname
elaphe.int-evry.fr
Il est possible que hostname vous indique un autre nom de machine
car, de façon à équilibrer la charge,
plusieurs machines peuvent répondre au doux nom de ssh.imtbs-tsp.eu, à savoir
ssh1 (nom d'hôte « anaconda ») ou ssh2 (nom d'hôte « taipan »).
Lancez la commande
xeyes. Que se passe-t-il ?
La commande ne démarre pas et affiche un message d'erreur « Error: Can't open display: ».
Techniquement, votre shell s'exécute sur l'une des passerelles du campus alors que votre écran est connecté à votre machine.
Le shell de la passerelle est incapable de trouver le serveur graphique de votre machine, ce qui explique que la commande xeyes ne puisse pas se connecter.
Déconnectez-vous de la passerelle avec la commande exit, puis reconnectez-vous à la passerelle en utilisant cette fois l'option -Y de ssh.
Cette option demande explicitement à ssh d'indiquer au shell de la passerelle où se trouve le serveur graphique.
Que se passe-t-il lorsque vous lancez xeyes ?
$ ssh -Y thomas_g@ssh.imtbs-tsp.eu
thomas_g@ssh.imtbs-tsp.eu's password:
Last login: Tue Jun 28 13:44:53 2016 from 157.159.39.4
[thomas_g@elaphe ~]$ xeyes
xeyes se porte maintenant comme un charme.
Connectez-vous avec
ssh -Y à une des machines des salles de TP à
partir du
shell s'exécutant sur la passerelle.
Ces machines ont des noms prévisibles de la forme
salle-num, où
salle est un numéro de salle et
num un numéro de
machine (par exemple
a001-08).
Lancez un
xeyes à distance. Où apparaît
xeyes ?
Déconnectez-vous de la machine de salle de TP et de la passerelle en saisissant
exit deux fois.
Vous devriez donc maintenant travailler sur votre machine.
Vérifiez que c'est le cas en lançant la commande
hostname.
Si vous voyez que vous n'êtes pas en train de travailler sur votre machine, saisissez
exit autant de fois que nécessaire.
$ exit
$ exit
$ hostname
a001-08
Nous allons maintenant apprendre à copier des fichiers d'une machine à une autre en utilisant le protocole
SSH.
Avant de commencer, de façon à vous remettre en jambe, copiez le fichier
/etc/passwd de votre machine dans votre répertoire de connexion
(répertoire «
~ ») en utilisant la commande
cp.
Pour copier un fichier d'une machine à une autre, il faut remplacer la commande
cp par la commande
scp.
Cette commande fonctionne à peu près comme
la commande
cp mais permet de spécifier une machine cible ou une machine destination
en préfixant un des chemins par «
mon-login@nom-machine: »
(par exemple, avec le chemin
thomas_g@srvp1.telecom-sudparis.eu:~/movies/chat-noir-chat-blanc.avi).
Copiez le fichier
/etc/passwd de la machine
ssh.imtbs-tsp.eu dans
votre répertoire de connexion.
$ scp thomas_g@ssh.imtbs-tsp.eu:/etc/passwd ~
thomas_g@ssh.imtbs-tsp.eu's password:
passwd 100% 2793 2.7KB/s 00:00
$
Ce qu'il faut retenir : lorsque vous travaillez à distance, vous devez d'abord vous connecter à
une passerelle de l'école avec ssh -Y ssh.imtbs-tsp.eu. Si par hasard ssh
vous indique que la machine ne peut pas être authentifiée alors que vous vous y étiez déjà connecté,
méfiez-vous, l'identité de la machine a peut-être été usurpée.
Ensuite, il vous est déconseillé de travailler directement sur la passerelle, afin d'éviter
un possible engorgement.
Connectez-vous donc à une autre machine, en sachant que les machines s'appellent salle-num,
où salle est un numéro de salle et num un numéro de machine (par exemple
a001-08).