<style>
#doc>div, #doc>p, #doc>ul {
text-align: justify;
}
</style>
<center>
Se connecter en graphique à sa session ENSTA depuis son PC
===
</center>
# Introduction
Comme vous le savez sûrement, les ordinateurs de l'ENSTA tournent sur Linux, système d'exploitation très flexible et orienté multi-utilisateurs. Cela veut dire que plusieurs personnes peuvent utiliser un ordinateur sous linux en même temps, sois en y connectant plusieurs claviers, souris et écrans, sois en s'y connectant à distance.
* [Connexion sous Linux](#connexion-depuis-linux)
* [Connexion sous Windows](#connexion-depuis-windows)
* [Échanger des fichiers entre sa session ENSTA et son PC](#échanger-des-fichiers-entre-sa-session-ensta-et-son-pc)
# Connexion depuis Linux
Se connecter à distance depuis Linux est très facile : pour se connecter à l'ENSTA il suffit d'ouvrir une console (`Ctrl + Alt + T` sur la plupart des Linux) puis de taper
```
ssh -tX username@relais.ensta.fr salle
```
:::info
Le saviez-vous ? `salle` est le nom d'un ordinateur ultra puissant de l'ENSTA ! Il est équipé de 32 coeurs et de 32 Go de RAM ! Il est allumé 24h/24.
:::
La console demande le mot de passe puis vous connecte à votre session ensta. Un simple
```
gedit &
```
ouvrira alors gedit comme si vous étiez à l'ENSTA, mais sur votre ordinateur.
:::info
En réalité, sur linux et contrairement à Windows et MacOS, le programme qui calcule l'interface graphique et celui qui l'affiche (**[Plus de détails pour les curieux](https://fr.wikipedia.org/wiki/X_Window_System)**) sont dissociés et peuvent même tourner sur des PC différents et communiquer par internet. C'est ce que l'on réalise ici : l'ordinateur de l'ENSTA a ouvert une session chez lui, mais l'affichage des fenêtres se fait sur votre interface à vous.
:::
# Connexion depuis Windows
Depuis Windows, en revanche, la connexion à distance n'est pas possible par défaut, il faut installer un client ssh (qui permet de se connecter à distance) et un serveur X (qui permet d'afficher sur le bureau les fenêtres envoyées par l'ordinateur de l'ENSTA).
## Installation de MobaXterm
Or il existe un petit programme Windows répondant au doux nom de MobaXterm qui a la bonne idée de faire les deux à la fois, programme que vous pouvez télécharger [ici](http://mobaxterm.mobatek.net/download-home-edition.html).
:::info
Comme vous l'avez sûrement remarqué, il y a deux version possibles : la version portable et la version installeur. D'une manière générale les versions portables alourdissent moins le système car elle n'en modifient pas les **registres**. En revanche, elles ne créent pas toutes seules de raccourcis sur le bureau, et ne se placent pas toutes seules dans `C:/Program Files/...`.
:::
## Configuration
Une fois MobaXterm téléchargé et lancé, sa fenêtre devrait ressembler à ça :
![](https://markdown.data-ensta.fr/uploads/upload_364b47a967b27815acaa8ddc9112752e.PNG)
:::success
Oui, ce programme est un peu une usine à gaz et intègre pleins d'outils pour se connecter à distance à un peu tout. (y compris des imprimantes, des écrans muraux etc..) depuis Windows, ce qui n'est pas plus mal étant donné que ce genre d'outil en est absent par défaut.
:::
MobaXterm enregistre les paramètres de chaque connexion dans des profils pour pouvoir les utiliser rapidement, on va donc créer un nouveau profil. Pour cela clique droit sur le panneau gauche puis `New Session`
![](https://markdown.data-ensta.fr/uploads/upload_dea607d2e3b1bc66d273df92dad5339e.png)
Choisissez `SSH`
:::info
Pour les curieux, chaque choix correspond à un protocole de communication différent :
* **SSH** est le protocole de connexion à distance des systèmes UNIX - Linux/OSX -
* **telnet** est le protocole de connexion à distance de Windows, il n'est pas sécurisé
* **FTP** permet de transférer des fichiers par le réseau, il est utilisé à l'ENSTA mais souvent en panne.
* **SFTP** permet de transférer des fichiers via ssh, il fonctionne dès que ssh fonctionne, c'est à dire souvent, et fonctionne aussi à l'ENSTA.
:::
Puis cliquez sur l'onglet `Network Settings`
:::warning
Il s'agit d'une spécificité de l'ENSTA : on ne peut accéder directement aux sessions depuis l'extérieur (en dehors des logements/locaux associatifs) sans passer par un relais d'entrée, pour des questions de sécurité. C'est ce relais que l'on configure dans `Network Settings` mais ce n'est pas obligatoire si jamais vous ne vous connectez que depuis votre chambre.
:::
Cochez `Connect Through SSH Gateway`, entrez `relais.ensta.fr` comme gateway, et utilisez votre nom de session ENSTA comme utilisateur.
Dans la partie `Basic SSH Settings` entrez `salle.ensta.fr` comme host, cochez `Specify username` Et entrez votre nom de session ENSTA, puis validez.
![](https://markdown.data-ensta.fr/uploads/upload_b409cb69fa1aace3766125cd999d9b30.PNG)
:::info
Ne pas cocher `Specify username` vous obligera à taper votre username à chaque connexion, mais cela peut être pratique pour se connecter avec différents comptes.
:::
Le terminal vous demande normalement votre mot de passe deux fois, puis ouvre une console colorée :
![](https://markdown.data-ensta.fr/uploads/upload_e7da0f17bb9445e379de8f78176ce72f.PNG)
:::info
Tout ce qui fonctionne sur la console de votre session ENSTA fonctionne de même sur celle-ci, il s'agit en fait de la même console que l'on affiche juste sur un ordinateur différent.
:::
vous pouvez tester l'affichage graphique en ouvrant gedit:
```
gedit &
```
*gedit* devrait s'ouvrir normalement comme ceci :
![](https://markdown.data-ensta.fr/uploads/upload_c00250e87f4f1cee35c174c6c09eefd2.PNG)
Et voilà, vous pouvez utiliser votre session linux depuis votre chambre dans le plus grand des calmes!
:::danger
Si l'affichage graphique ne fonctionne pas mais que la console fonctionne, il est possible que le forwarding X ne soit pas activé (la transmission de l'interface par internet); Cela veut dire que soit
* Ce paramètre n'est pas activé dans mobaXterm, auquel cas il faut cliquer sur `Settings`->`X11` puis cocher `Automatically start X server at startup` si il n'est pas coché. Vérifier également que X11 forwarding est activé avec un clique droit sur la session nouvellement créée `Edit Session`->`Advanced SSH Settings` puis cocher `X11 Forwarding`. Après reconnection, cela devrait fonctionner.
* Votre session graphique a été désactivée par le SIE. Cela arrive lorsque vous utilisez trop d'espace disque (plus de 2Go à l'heure ou j'écris ces lignes), il faut supprimer des fichiers par la console avant de pouvoir de nouveau utiliser la session graphique.
:::
## Bonus
* Dans le panneau de gauche, l'onglet "sftp" permet, quand vous êtes connectés, d'envoyer et de récupérer des fichiers de votre session ENSTA.
* L'option "MultiExec" permet de lancer des commandes en même temps sur plusieurs ordinateurs... sachant que l'ont peut se connecter à n'importe quel poste allumé en utilisant son nom comme "yoda01@ensta.fr", il est possible comme cela de diviser de gros calculs sur plusieurs ordinateurs.
# Échanger des fichiers entre sa session ENSTA et son PC
:::info
Si vous êtes sous MobaXterm, rien de plus simple : il vous suffit d'utiliser le panneau de gauche qui s'active automatiquement lorsque vous vous connectez en ssh à votre session.
:::
Si vous utilisez un terminal Linux, le plus simple est d'utiliser la commande `sftp`. Pour cela, ouvrez un nouveau terminal et entrez la commande suivante pour initier la connexion (**si vous êtes sur le réseau de l'ENSTA**) :
```
sftp username@salle.ensta.fr
```
:::warning
**Si vous n'êtes pas à L'ENSTA**, vous devez passer par le relais SSH. Pour cela, c'est cette commande qu'il vous faudra utiliser :
```bash
sftp -o "ProxyCommand ssh -W %h:%p username@relais.ensta.fr" username@salle.ensta.fr
```
:::
Vous pouvez alors utiliser les commandes classiques de bash (**ls, cd, mv, cp, mkdir, rm,** etc.) : ces commandes agissent **sur les fichiers de votre session ENSTA**.
Si vous souhaitez effectuer ces mêmes commandes pour les fichiers **situés sur votre PC**, il faut ajouter un `l` (**l** comme **local**) avant chaque commande : **lls, lcd, lmv, lcp, lmkdir,** etc.
Pour copier un fichier depuis votre session ENSTA vers votre PC, placez-vous dans le bon dossier sur votre PC avec la commande `lcd` et tapez :
```
get votre_fichier_ENSTA
```
ou
```
get -r votre_dossier_ENSTA
```
:::success
Exemple : Vous avez sur votre session ENSTA un dossier `IN102` dans votre répertoire personnel. Ce dossier contient un sous-dossier nommé `TD01` que vous souhaitez copier sur votre PC dans le dossier `Téléchargements`. Vous devez donc taper les commandes suivantes :
```
lcd Téléchargements
get -r IN102/TD01
```
:::
Pour copier un fichier depuis votre PC vers votre session ENSTA, placez-vous dans le bon dossier sur votre session ENSTA avec la commande `cd` et tapez :
```
put votre_fichier_sur_PC
```
ou
```
put -r votre_dossier_sur_PC
```
:::success
Exemple : Vous avez sur votre PC un dossier `Documents` dans votre répertoire personnel. Ce dossier contient un fichier nommé `programme.c` que vous souhaitez copier sur votre session ENSTA dans le dossier `IN102/TD01`. Vous devez donc taper les commandes suivantes :
```
cd IN102/TD01
put Documents/programme.c
```
:::