Skip to content

SSH : Secure SHell


SSH est un protocole et un outil pour avoir accès à un shell à distance.


Un shell ?

Le shell (ou coquillage en français), c'est le programe le plus basique qu'il existe sur un ordinateur pour intéragir avec lui. Dans un shell, on utilise la démarche REPL pour communiquer avec l'ordinateur :

  • Read
  • Exectue
  • Print
  • Loop

Le but d'un shell est donc de lire du texte donné par l'utilisateur, puis d'executer les commandes demandées dans ce texte, et enfin d'écrire le résultat en sortie et recommencer la boucle.

Info

Python utilise aussi la démarche REPL lorsque vous lancez python3 et que vous écrivez du code après les ">>>"


SSH - Premières connections

Ainsi, SSH est un programme permettant d'interagir avec une machine à distance via un shell. Le programme est déjà installé sur la plupart des distributions Linux, sur Windows et sur MacOS. Pour l'utiliser, tapez simplement:

ssh <utilisateur>@<ordinateur>
en remplaçant <utilisateur> par votre nom Agalan (par exemple bartolor pour BARTOLOmeo Ryan) et <ordinateur> par le nom de l'ordinateur utilisé, par exemple ensipc314.ensimag.fr si vous voulez utiliser l'ordinateur 314.

Et il y a des chances que ça ne fonctionne pas, puisque la machine n'est peut-être pas allumée. En effet, pour diminuer la consomation de l'établissement, les ordinateurs s'éteignent automatiquement si ils ne sont pas utilisés durant une certaine période, mais vous pouvez tout de même les allumer à distance

VPN

Attention !! il faut être connecté au VPN au préalable, sinon les machines ne sont pas accessibles !


Clef de sécurité GIT- Pour se connecter plus rapidement

Info

Plus de détails sur la page dédiée

Il peut vous sembler long et rébarbatif de devoir taper votre identifiant et votre mot de passe à chaque connection avec gitlab. Heureusement, vous pouvez abréger ce procesus en mettant en place des clefs de sécurité entre votre machine et le serveur gitlab de l'ENSIMAG. Pour cela, vous pouvez :

  • Créez une paire de clefs de sécurité sur votre machine :

    ssh-keygen -f ~/.ssh/gitlab_ensimag -q -N ""
    

  • Ajoutez la clef privée parmi les clefs de votre machine :

    echo 'Host "gitlab.ensimag.fr"
      AddKeysToAgent yes
      IdentityFile ~/.ssh/gitlab_ensimag' >> .ssh/config
    

  • Puis ajouter la clef publique (visible en tapant cat ~/.ssh/gitlab_ensimag.pub) sur gitlab pour vous identifier sur le serveur gitlab plus facilement.

Vous pouvez alors tester cette configuration via ssh -T gitlab.ensimag.fr

Attention à cloner via SSH

Pour vous identifier via ssh lors de la modification de repo gitlab, il faut avoir cloné le repo via ssh :

git clone git@gitlab.ensimag.fr:chemin/du/projet.git


Ses amis SCP et SFTP

SCP

Vous pouvez facilement télécharger un fichier via la commande scp, pour Secure CP, commande la commmande GNU cp :

scp <source> <destination>
Ainsi, si vous voulez récupérer un document depuis vos sessions sur votre ordinateur:
scp <utilisateur>@ensipc<nombre>.ensimag.fr:</chemin/du/ficher/distant> <chemin/sur/machine/locale>
Et inversement, si vous voulez envoyer sur votre session un document depuis votre ordinateur:
scp chemin/sur/machine/locale utilisateur@ensipcXXX.ensimag.fr:/chemin/vers/ficher/distant 


SFTP

Peu d'entre nous conaissent parfaitement les chemins de leurs fichiers par coeur sur une machine à distance, c'est pourquoi SFTP est là pour nous sauver ! Lancez simplement :

sftp <utilisateur>@filer.ensimag.fr
utilisateur est votre nom d'utilisateur Agalan. Vous tomberez alors sur une REPL de la forme :
Connected to filer.ensimag.fr.
sftp>
Où vous pourrez taper help pour avoir la liste des commandes. Celles qui nous interessent sont :

  • get : pour télécharger un fichier distant sur la machine locale
  • put : pout envoyer un fichier distant depuis votre machine

SSH graphique

Vous pouvez ouvrir une session sur un ordinateur à distance et afficher l'écran sur votre ordinateur via ssh et remmania.

Cette page vous expliquera le truc.