Portail informatique Année 2018 – 2019

CSC 3102 – Introduction aux systèmes d’exploitation

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. Ouvrez un terminal et lancez la commande hostname. Quel est le nom de votre machine ? $ hostname b02-08.int-evry.fr

Le b02 indique la salle et le 08 le numéro de machine

Avant d'aller plus loin, lancez la fabuleuse commande xeyes. Que fait cette commande ? Des yeux suivent la souris. 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). 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. Dans ce cas, vous pouvez répondre yes sans danger;
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.
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 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.
Demandez à votre voisin le nom de sa machine. À partir du shell s'exécutant sur la passerelle, connectez-vous (avec ssh -Y) sur la machine de votre voisin et lancez un xeyes à distance. Où apparaît xeyes ? Sur votre machine. Déconnectez-vous de la machine de votre voisin 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 b02-08.int-evry.fr 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. $ cp /etc/passwd ~ $ 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@stromboli.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é. Ensuite, il vous est demandé de ne jamais travailler directement sur la passerelle de façon à ce qu'elle ne soit pas surchargée (imaginez 1000 étudiants en train de travailler sur la même machine). 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 b02-08).