Skip to content
  • Commandes Visual Studio Code
  • Transfert de fichiers : FTP, ssh et dérivés (sftp, scp), rsync.

Maîtrise de son éditeur

Il est primordial de maîtriser son éditeur de texte afin d'être productif. Un investissement personnel est nécessaire.

Dupliquer la ligne courante avec Visual Studio Code peut se faire de plusieurs façons.

  • Amateur :

    • Utiliser la souris pour mettre le pointeur de début de ligne
    • Presser le bouton gauche, glisser jusqu'à la fin de ligne, relâcher
    • Édition > Copier
    • Cliquer sur la ligne suivante
    • Édition > Coller
  • Un peu plus expérimenté (spécifique au texte sous Linux)

    • Utiliser la souris pour mettre le pointeur de début de ligne
    • Presser le bouton gauche, glisser jusqu'à la fin de ligne, relâcher
    • Cliquer sur la ligne suivante avec le bouton du milleu
  • Expérimenté

    • Amener le curseur sur la ligne concernée (au clavier ou à la souris)
    • CTRL + C
    • CTRL + V
  • Expert Visual Studio Code

    • CTRL + MAJ + ALT + UP (ou DOWN)

La dernière solution fait appel à la mémoire et demande un apprentissage. En contrepartie, elle fait gagner énormément de temps.

Il est donc extrêmement important de connaître et maîtriser les raccourcis des commandes principales pour les logiciels que vous utilisez constamment.

À vous de jouer : Parcourez la feuille fournie par l'enseignant pour découvrir les raccourcis utiles

Travailler à distance

Objectifs :

  • lancer des commandes sur une machine distante où on a un compte
  • ouvrir une session interactive

SSH, clés

SSH = Secure Shell. C'est en fait un protocole de communication sécurisé, qui établit un canal de communication sûr au travers d'un réseau qui ne l'est pas, notamment par l'usage de clés. Il repose sur la cryptographie asymétrique :

La cryptographie asymétrique, ou cryptographie à clé publique, est une méthode de chiffrement qui s'oppose à la cryptographie symétrique. Elle repose sur l'utilisation d'une clé publique (qui est diffusée) et d'une clé privée (gardée secrète), l'une permettant de coder le message et l'autre de le décoder. Ainsi, l'expéditeur peut utiliser la clé publique du destinataire pour coder un message que seul le destinataire (en possession de la clé privée) peut décoder, garantissant la confidentialité du contenu. Inversement, l'expéditeur peut utiliser sa propre clé privée pour coder un message que le destinataire peut décoder avec la clé publique ; c'est le mécanisme utilisé par la signature numérique pour authentifier l'auteur d'un message. (Wikipedia) La magie sera expliquée en cours de maths (cryptographie) et de réseau. Version SSH-1 en 1995, découverte vulnérable aux attaques en 1998, obsolète. SSH-2 en 2006. Les deux versions sont incompatibles.

La commande ssh

La commande ssh permet d'ouvrir une session à distance sur une autre machine

$ ssh billaud@ssh.labri.fr
Password: .....

Depuis n'importe où, vous pouvez travailler sur une machine du département info-ssh1.iut.u-bordeaux.fr ou info-ssh2.iut.u-bordeaux.fr.

Note : sous Windows, utilisez putty pour ouvrir une session ssh.

Génération de clés, utilisation

Pour générer les clés, choisir d'abord une «passphrase» (qui peut être vide) et lancer la commande :

$ ssh-keygen -t rsa

qui créent les clés dans le répertoire .ssh.

La commande précédente fabrique deux clés: une clé publique (suffixe id_rsa.pub, et une clé privée (sans suffixe). La clé publique peut être ajoutée dans le fichier authorized_keys d'une machine distante, ce qui permettra de s'y connecter sans donner de mot de passe (si la passphrase est vide).

ssh-copy-id le fait automatiquement :

$ ssh-copy-id rgiot@info-ssh1.iut.u-bordeaux.fr

Limites

Lorsque vous êtes connectés à une machine distante, si la connection réseau est coupée, la connection se termine tout comme les programmes distants qu'elle a lancés. Pour éviter ce désagrément, il est nécessaire d'utiliser un multiplexeur de terminaux tel que screen ou tmux. tmux est installé sur info-ssh1.iut.u-bordeaux.fr.

Raccourcis (https://doc.ubuntu-fr.org/tmux) :

  • Ctrl + b suivi de c : Créer un nouveau terminal dans la session tmux active
  • Ctrl + b suivi de n : Switcher entre les différents terminaux de la session
  • Ctrl + b suivi de X : Choisir un terminal spécifique (ou X est le numéro du terminal)
  • Ctrl + b suivi de d : Se détacher de la session tmux (lancer 'tmux a' pour s'y rattacher)
  • Ctrl + b suivi de , : Permet de renommer un terminal
  • Ctrl + b suivi de w : Affiche la liste des terminaux disponibles
  • Ctrl + b suivi de t : Afficher l'heure dans un terminal
  • Ctrl + b suivi de [ : Permet de scroller ligne/ligne (avec les fleches du clavier ou la souris) ou même page/page avec PgnUP et PgnDOWN, tapez q pour quitter ce mode

Transferts de fichiers

Nécessité de transférer des fichiers d'une machine à l'autre (hors répertoires partagés), ou de télécharger des logiciels etc. Serveurs anonymes, accès par compte etc.

FTP

Vu au TP précédent.

FTP, File Transfer Protocol, est un protocole de transfert de fichiers. Par métonymie, FTP désigne aussi une famille de logiciels qui respectent se protocole.

  • ftp historique, interactif, avec les commandes de base put , get , cd , ls , mput , mget etc.
  • des versions interactives améliorées ( ncftp , avec complétion, historique, signets etc).
  • des versions interactives graphiques ( gftp , filezilla , navigateurs ...)
  • des outils non interactifs. Exemple ncftpget ftp://truc.org/pub/README.TXT.

Le protocole FTP est également connu par les navigateurs Web (transfert en lecture seulement), avec des URL du type ftp://ftp.labri.fr.

sftp, scp : commandes basées sur ssh

SSH (Secure Shell) est un protocole de communication sécurisée, sur lequel se basent plusieurs outils.

scp

Secure Copy, ressemble à la commande cp. On peut préciser le nom de la machine (et le compte) où se trouve un fichier ou un répertoire.

$ scp -r billaud@ssh.labri.fr:COURS/USI-2012 ~/COURS

sftp

SSH FTP : dispose de commandes semblables à celle de FTP. Les outils graphiques (FileZilla, etc) permettent souvent d'utiliser SFTP. Depuis l'extérieur, passer par le serveur info-ssh1.iut.u-bordeaux1.fr. Attention, le nom SFTP est utilisé pour désigner plusieurs protocoles de transfert de fichiers. - Ici il désigne SSH File Transfer Protocol - il y a aussi Secure File Transfer Protocol - et Simple File Transfer Protocol

Pour tout arranger, la page de manuel Linux de la commande sftp indique par erreur "secure ftp".

rsync

Enfin, plusieurs outils permettent de synchroniser efficacement des répertoires d'une machine à une autre, en ne transférant que les fichiers modifiés. Exemple, rsync qui passe par ssh :

$ rsync -avz --delete COURS billaud@ssh.labri.fr:ARCHIVES
  • Copie le répertoire COURS dans le répertoire ARCHIVES du compte indiqué.
  • option -a : récursivement, en mettant les copies à la même date de dernière modification (mode archivage).
  • option -v : en affichant les noms des fichiers transférés au fur et à mesure
  • option -z : en compressant les données
  • option -delete : en détruisant les fichiers d'ARCHIVES qui ne sont plus dans COURS.

Remarque : rsync a un comportement différent sur la gestion de la source :

  • / à la fin du dossier : le contenu du dossier est copié directement à la destination
  • / pas à la fin du dossier : le dossier (et son contenu) est copié dans la destination

Accès à vos fichiers IUT depuis votre machine personnelle

Pré-requis : sshfs.

$ sudo apt install sshfs

Manipulation :

$ mkdir fichiers_iut # création d'un point de montage
$ sshfs votrelogin@info-ssh1.iut.u-bordeaux.fr:.  fichiers_iut # montage

À vous de jouer : Vous avez accès à 2 machines: celle du TD et info-ssh1.iut.u-bordeaux.fr.

  • Connectez-vous à info-ssh1 et créez une arborescence avec différents dossiers/fichiers
  • Sur votre poste de travail récupérez une copie de l'arborescence d'info-ssh1 dans le dossier tmp
  • Changez quelques fichiers de l'arborescence sur info-ssh1
  • Rappatriez les modifications sur votre machine locale