From 76e2d45485985e4749423d910aa8c3b10152c7f8 Mon Sep 17 00:00:00 2001 From: Basile CLEMENT Date: Tue, 24 Sep 2013 09:43:19 +0200 Subject: [PATCH 1/8] Draft for eduroam configuration --- internet/eduroam.tml | 223 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 223 insertions(+) create mode 100644 internet/eduroam.tml diff --git a/internet/eduroam.tml b/internet/eduroam.tml new file mode 100644 index 0000000..8d2436b --- /dev/null +++ b/internet/eduroam.tml @@ -0,0 +1,223 @@ + + + + + eduroam + + + + +
+ Cette page est en cours d'écriture, et contient donc des + informations incomplètes et/ou imprécises. Utilisez à vos + risques et périls, et n'hésitez pas à envoyer vos + remarques/demandes (par exemple pour d'autres systèmes) + à
basile[point]clement[at]ens[point]fr
. +
+ +

Connection eduroam à l'ENS et ailleurs

+ + eduroam est un réseau WiFi diffusé dans de nombreuses institutions + de recherche et/ou d'enseignement en France, en Europe, et dans le + reste du monde. Son but est d'offrir un accès à Internet aux + étudiants et personnels de ces établissements de façon universelle + (si vous avez des identifiants eduroam dans un établissement, par + exemple à l'ENS, vous pouvez vous connecter à eduroam partout dans + le monde !). + +

Installation automatique (recommandé sous Windows)

+ + En cours + d'écriture. Voir l'outil + de configuration CAT d'eduroam. + +

Installation manuelle (recommandé sous Linux)

+ + + +

Linux (ubuntu) avec NetworkManager

+ +

+ Dans le menu de sélection de réseau, sélectionnez un réseau + eduroam (clic gauche), puis suivez les instructions suivantes. +

+ +
    +
  1. Dans Authentication, choisissez Tunneled TLS
  2. +
  3. Dans Anonymous Identity, entrez anonymous@ens.fr
  4. +
  5. Dans CA Certificate, sélectionnez le + fichier /etc/ssl/certs/AddTrust_External_Root.pem
  6. +
  7. Dans Inner authentication, sélectionnez PAP
  8. +
  9. Entrez votre identifiant ENT/GPS en + ajoutant @ens.fr à la fin (par + exemple, si votre identifiant ENT/GPS + est bobama, vous devez + renseigner bobama@ens.fr)
  10. +
  11. Dans Password, entrez votre mot de passe ENT/GPS
  12. +
  13. Cliquez sur Connect
  14. +
  15. NetworkManager peut, dans certain cas, vous demander le mot + de passe de votre trousseau. Il faut alors renseigner le mot + de passe de votre compte sur votre ordinateur, pas le mot de + passe ENT/GPS !
  16. +
+ +

Linux avec wicd

+ + wicd ne possède malheureusement pas de profil fonctionnant avec la + configuration eduroam de l'ENS, il va donc falloir le créer nous + même. + +
+ Vous avez besoin d'un accès root (administrateur) à + votre machine.
Si ce n'est pas le cas - il vous faut + utiliser une autre méthode. +
+ +

+ Créez, en tant que root le + fichier /etc/wicd/encryption/templates/eduroam-ens + et placez-y le contenu suivant : +

name = Eduroam ENS
+author = Basile Clement
+version = 1
+require identity *Identifiant password *Mot_de_passe
+protected password *Mot_de_passe
+-----
+ctrl_interface=/var/run/wpa_supplicant
+network={
+        ssid="$_ESSID"
+        scan_ssid="$_SCAN"
+        key_mgmt=WPA-EAP
+        eap=TTLS
+        identity="$_IDENTITY"
+        anonymous_identity="anonymous@ens.fr"
+        password="$_PASSWORD"
+        ca_path="/etc/ssl/certs"
+        subject_match="ens.fr"
+        phase2="auth=PAP"
+}
+

+ Ensuite, éditez le + fichier /etc/wicd/encryption/templates/active + (toujours en tant que root) et ajoutez-y la ligne + suivante : +

eduroam-ens
+

+ +

+ Maintenant, il ne reste plus qu'à configurer un profil avec vos + identifiants eduroam. +

    +
  1. Sélectionnez un réseau eduroam quelconque (ESSID eduroam)
  2. +
  3. Cochez les cases Use these settings for all network + sharing this essid et Use encryption
  4. +
  5. Sélectionnez Eduroam ENS comme méthode de chiffrage
  6. +
  7. Entrez vos identifiants (habituellement, la première + lettre de votre prenom puis votre nom - n'ajoutez + pas @ens.fr) et mots de passe ENT/GPS + dans les champs Identifiant + et Mot_de_passe
  8. +
  9. Enregistrez la configuration et connectez-vous. Vous + devriez avoir accès à internet.
  10. +
+

+ +

(Arch)Linux avec netctl

+ +

Linux avec wpa_supplicant

+ +

Si vous utilisez wpa_supplicant, vous devriez être à peu près + capables de vous débrouiller tout seul pour la configuration. Le + bloc network suivant devrait fonctionner (pensez à + correctement remplacer $LOGIN + et $PASSWORD et n'ajoutez pas @ens.fr + après l'identifiant ENT/GPSp) suivant devrait fonctionner : + +

network={
+	ssid="eduroam"
+	key_mgmt=WPA-EAP
+	eap=TTLS
+	identity="$LOGIN"
+	anonymous_identity="anonymous@ens.fr"
+	password="$PASSWORD"
+	ca_path="/etc/ssl/certs/"
+	subject_match="ens.fr"
+	phase2="auth=PAP"
+}
+

+ +

Android 4.X.X

+ + Cette procédure a été testée sur un HTC One + X sous Android 4.2.2 et sur un Galaxy Nexus sous Android 4.3.?. + + Allez dans Settings Activez le WiFi Choisissez "TTLS" dans Methode + EAP Choisissez "PAP" dans Phase 2 Mettez votre identifiant ENT/GPS + puis @ens.fr dans "Identite" Mettez votre mot de passe ENT/GPS + dans "mot de passe" Dans Anonyme entrez "anonymous@ens.fr" (il + faut parfois cocher la case "Afficher les options avancées") + Cliquez sur "Sauver" + +
+ Auteur : Basile Clement. . +
+ + + + + + From 2179969b1227356093b18860e505088e90a015f9 Mon Sep 17 00:00:00 2001 From: Basile CLEMENT Date: Thu, 26 Sep 2013 13:53:11 +0200 Subject: [PATCH 2/8] Plese the validator --- internet/eduroam.tml | 63 ++++++++++++-------------------------------- 1 file changed, 17 insertions(+), 46 deletions(-) diff --git a/internet/eduroam.tml b/internet/eduroam.tml index 8d2436b..8c3249d 100644 --- a/internet/eduroam.tml +++ b/internet/eduroam.tml @@ -4,38 +4,6 @@ eduroam - @@ -49,19 +17,21 @@ kbd:active {

Connection eduroam à l'ENS et ailleurs

+
eduroam est un réseau WiFi diffusé dans de nombreuses institutions de recherche et/ou d'enseignement en France, en Europe, et dans le reste du monde. Son but est d'offrir un accès à Internet aux étudiants et personnels de ces établissements de façon universelle (si vous avez des identifiants eduroam dans un établissement, par exemple à l'ENS, vous pouvez vous connecter à eduroam partout dans - le monde !). + le monde !).

Installation automatique (recommandé sous Windows)

+
En cours d'écriture. Voir l'outil - de configuration CAT d'eduroam. + de configuration CAT d'eduroam.

Installation manuelle (recommandé sous Linux)

@@ -70,13 +40,13 @@ kbd:active {

Linux (ubuntu) avec NetworkManager

-

+

Dans le menu de sélection de réseau, sélectionnez un réseau eduroam (clic gauche), puis suivez les instructions suivantes. -

+
  1. Dans Authentication, choisissez Tunneled TLS
  2. @@ -99,9 +69,10 @@ kbd:active {

    Linux avec wicd

    +
    wicd ne possède malheureusement pas de profil fonctionnant avec la configuration eduroam de l'ENS, il va donc falloir le créer nous - même. + même.
    Vous avez besoin d'un accès root (administrateur) à @@ -109,7 +80,7 @@ kbd:active { utiliser une autre méthode.
    -

    +

    Créez, en tant que root le fichier /etc/wicd/encryption/templates/eduroam-ens et placez-y le contenu suivant : @@ -132,15 +103,15 @@ network={ subject_match="ens.fr" phase2="auth=PAP" } -

    +

    Ensuite, éditez le fichier /etc/wicd/encryption/templates/active (toujours en tant que root) et ajoutez-y la ligne suivante :
    eduroam-ens
    -

    +
    -

    +

    Maintenant, il ne reste plus qu'à configurer un profil avec vos identifiants eduroam.
      @@ -156,13 +127,13 @@ network={
    1. Enregistrez la configuration et connectez-vous. Vous devriez avoir accès à internet.
    -

    +

    (Arch)Linux avec netctl

    Linux avec wpa_supplicant

    -

    Si vous utilisez wpa_supplicant, vous devriez être à peu près +

    Si vous utilisez wpa_supplicant, vous devriez être à peu près capables de vous débrouiller tout seul pour la configuration. Le bloc network suivant devrait fonctionner (pensez à correctement remplacer $LOGIN @@ -180,10 +151,10 @@ network={ subject_match="ens.fr" phase2="auth=PAP" } -

    +

    Android 4.X.X

    - +
    Cette procédure a été testée sur un HTC One X sous Android 4.2.2 et sur un Galaxy Nexus sous Android 4.3.?. @@ -193,7 +164,7 @@ network={ dans "mot de passe" Dans Anonyme entrez "anonymous@ens.fr" (il faut parfois cocher la case "Afficher les options avancées") Cliquez sur "Sauver" - +
    Auteur : Basile Clement. .
    From efe8af1d530394ea90b9db74c1be2ad8cc935a5c Mon Sep 17 00:00:00 2001 From: "Phyks (Lucas Verney)" Date: Mon, 14 Oct 2013 00:07:38 +0200 Subject: [PATCH 3/8] Update de la page sur SSH --- internet/loin/ssh.tml | 213 +++++++++++++++++++++++++----------------- 1 file changed, 125 insertions(+), 88 deletions(-) diff --git a/internet/loin/ssh.tml b/internet/loin/ssh.tml index ea2a23d..eab515b 100644 --- a/internet/loin/ssh.tml +++ b/internet/loin/ssh.tml @@ -11,7 +11,7 @@

    Connexion à distance sécurisée

    -SSH est un logiciel (et un protocole) permettant de se connecter à un ordinateur distant de façon sécurisée. Il vous permet en particulier d'ouvrir un shell à distance sur le serveur des élèves, clipper. +SSH est un logiciel (et un protocole) permettant de se connecter à un ordinateur distant de façon sécurisée. Il vous permet en particulier d'ouvrir un shell à distance sur une des machines de l'ENS, trolle.ens.fr par exemple.

    À savoir : le protocole SSH n'est pas une @@ -20,6 +20,13 @@ href="http://www.eleves.ens.fr/wintuteurs/">WinTuteurs, le tutorial sur PuTTY (Windows).
    +
    +Note : Sur cette page, il est question de SSH1 et de SSH2. Depuis quelques années déjà toutes les machines de l'ENS utilisent SSH2 et ce protocole est devenu le nouveau standard. Les informations sur SSH1 ne sont là qu'en cas de besoins vraiment particuliers. +
    + +
    + Note : Sur cette page, la machine trolle.ens.fr sera utilisée pour les démonstrations. Sachez que vous pouvez vous connecter de la même façon sur n'importe quelle machine des salles informatiques (le nom de la machine étant marqué dessus). Vous pouvez également vous connecter sur sas.eleves.ens.fr qui remplace l'ancien accès à clipper mais cette machine n'étant pas physique, il est conseillé de se connecter sur une des machines des salles informatiques pour effectuer des tâches gourmandes en ressources. +

    Se connecter

    @@ -34,9 +41,9 @@ entend la machine devant laquelle vous vous trouvez. Dans ce tutorial, on l'appelle machineloc. La machine distante, c'est celle à laquelle vous voulez vous connecter. Dans ce tutorial, on l'appelle machinedist. Par exemple, si vous êtes dans -votre thurne et que vous voulez vous connecter à clipper, +votre thurne et que vous voulez vous connecter à une machine de l'ENS (trolle.ens.fr), la machine locale est votre propre ordinateur, la machine distante est -clipper. +trolle.ens.fr. @@ -54,9 +61,9 @@ On peut aussi utiliser la syntaxe équivalente :

    Pour indiquer la machine à distance, vous pouvez utiliser aussi bien -le nom de la machine (clipper.ens.fr, -horus.ens.fr, etc.) que son adresse IP (pour clipper, -129.199.129.1). +le nom de la machine (sas.eleves.ens.fr, trolle.ens.fr, +horus.ens.fr, etc.) que son adresse IP (pour trolle.ens.fr, +129.199.129.38).

    Si vous avez le même login sur les deux machines en question, ce @@ -76,13 +83,13 @@ sur cette machine, vous verrez un message tel que celui-ci : machineloc ~ $ ssh toto@machinedist The authenticity of host 'machinedist' (111.222.333.4)' can't be established. RSA1 key fingerprint is 1z:2y:3x:4w:56:78:98:78:ab:cd:ef:01:23:45:67:89. -Are you sure you want to continue connecting (yes/no)? +Are you sure you want to continue connecting (yes/no)?

    Ne paniquez pas ! Tout est parfaitement normal, on vérifie qu'il s'agit de la bonne machine. Il suffit de répondre 'yes' pour -continuer. ssh vous dira alors : +continuer (si vous êtes sûr de votre connexion). ssh vous dira alors :

    @@ -93,8 +100,8 @@ the list of known hosts.
     

    Ce qui signifie que ssh ne vous embêtera plus à poser la question. Notez au passage le « RSA1 » entre parenthèses. Il s'agit du -type de clef utilisée par la machine distante. Cette information peut -vous servir par la suite pour générer une clef. +type de clé utilisée par la machine distante. Cette information peut +vous servir par la suite pour générer une clé.

    @@ -108,8 +115,8 @@ défaut, ssh vous le réclamera.

    -clipper ~ $ ssh machine.monlabo.fr
    -toto@machine's password: 
    +trolle.ens.fr ~ $ ssh machine.monlabo.fr
    +toto@machine's password:
     

    @@ -117,44 +124,48 @@ Il vous suffit de taper votre mot de passe. Attention, pour des raisons de sécurité (un coup d'œil sur l'écran de son voisin est un mode de piratage basique mais efficace) celui n'apparaître pas à l'écran, vous devrez taper en aveugle. Si vous pensez avoir commis une -erreur dans votre mot de passe, faites Ctrl+u et retapez -le en entier. Si vous avez tapé correctement votre mot de passe, vous +erreur dans votre mot de passe, faites Ctrl+u et retapez-le +en entier. Si vous avez tapé correctement votre mot de passe, vous aurez à votre disposition un shell sur la machine distante. Sinon, vous lirez « Permission denied. » et il faudra recommencer.

    -

    Authentification par clef publique

    +

    Authentification par clé publique

    -Une autre méthode utilise ce qu'on appelle une « clef publique », +Une autre méthode utilise ce qu'on appelle une « clé publique », c'est-à-dire un code qui vous identifie. Si vous suivez la procédure décrite ci-dessous, vous pourrez vous connecter par ssh -sur une machine distante sans avoir à taper de mot de passe. +sur une machine distante sans avoir à taper de mot de passe. De plus, +cette méthode permet de se connecter sur plusieurs machines avec la même +clé, ce qui peut être pratique. Enfin, utiliser une clé publique augmente +(légèrement) la sécurité en cas de compromission du serveur : celui-ci ne peut +pas récupérer votre mot de passe.

    -

    Type de clef

    +

    Type de clé

    Il existe différentes versions de SSH. Suivant le type de version -utilisé sur la machine distante, le type de clef à générer +utilisé sur la machine distante, le type de clé à générer diffère. Cette information vous est donnée par exemple lors de votre première connexion ssh sur cette machine (voir ci-dessus). Si vous ne vous en souvenez plus, -sachez que SSH1 utilisegénéralement des clefs RSA1, et SSH2 des clefs -DSA. Pour connaître la version de SSH utilisée sur la machine +sachez que SSH1 utilise généralement des clés RSA1, et que SSH2 peut utiliser des clés +RSA ou DSA. Pour connaître la version de SSH utilisée sur la machine distante, tapez ssh -v sur la machine distante.

    À l'ENS, depuis décembre 2003, les ordinateurs utilisent SSH2. Si vous -aviez déjà une clef publique pour vous connecter à l'ENS, il vaut -mieux en changer. Il vous suffit de générer une nouvelle clef, de type -DSA, et de suivre de nouveau la procédure ci-dessous. +aviez déjà une clé publique pour vous connecter à l'ENS, il vaut +mieux en changer. Il vous suffit de générer une nouvelle clé, de type +RSA (chiffrement recommandé), et de suivre de nouveau la procédure ci-dessous.
    -clipper ~ $ ssh -v
    +trolle.ens.fr ~ $ ssh -v
     OpenSSH_3.7.1p2, SSH protocols 1.5/2.0, OpenSSL 0.9.7c 30 Sep 2003
     Usage: ssh [options] host [command]
     <...>
    @@ -165,12 +176,12 @@ Le « SSH protocols 1.5/2.0 » vous indique qu'il s'agit d'un
     ssh récent qui peut faire du SSH1 ou du SSH2.
     

    -

    Générer la clef

    +

    Générer la clé

    Pour ce faire, commencez par taper la commande ssh-keygen (comme key generator) sur la machine -locale (et pas sur la machine à distance). +locale (et pas sur la machine distante).

    @@ -179,95 +190,103 @@ locale (et pas sur la machine à distance).
     
     

    Avec un ssh récent, qui peut faire du SSH1 ou du SSH2, il -faut indiquer le type de clef à générer (voir ci-dessus). Par exemple, -pour générer une clef DSA (SSH2) : +faut indiquer le type de clé à générer (voir ci-dessus). Par exemple, +pour générer une clé RSA (recommandé) :

    +
    +machineloc ~ $ ssh-keygen -t rsa
    +
    + +

    Pour générer une clé de type DSA, il suffit d'utiliser la commande suivant à la place :

     machineloc ~ $ ssh-keygen -t dsa
     
    +

    Notez également qu'il est possible de spécifier la taille de la clé (en bits) avec le paramètre -b X où X est un nombre de bits à choisir parmi (par exemple) 1024, 2048 (minimum recommandé), 4096.

    +

    -Le générateur de clefs va en générer deux, une clef publique et une -clef privée. Il va placer la clef privée (sous forme chiffrée) dans un -endroit qui, par défaut, est $HOME/.ssh/id_dsa pour -SSH2 et $HOME/.ssh/identity pour SSH1 : +Le générateur de clés va en générer deux, une clé publique et une +clé privée. Il va placer la clé privée (sous forme chiffrée) dans un +endroit qui, par défaut, est $HOME/.ssh/id_rsa pour +SSH2 et une clé chiffrée en RSA et $HOME/.ssh/identity pour SSH1 :

    -machineloc ~ $ ssh-keygen -t dsa
    -Generating public/private dsa key pair.
    -Enter file in which to save the key (/usr/home/toto/.ssh/id_dsa): 
    +machineloc ~ $ ssh-keygen -t rsa
    +Generating public/private rsa key pair.
    +Enter file in which to save the key (/usr/home/toto/.ssh/id_rsa):
     

    Appuyez sur Enter pour accepter la -localisation de la clef (il est plus simple d'accepter la localisation +localisation de la clé (il est plus simple d'accepter la localisation proposée). ssh-keygen vous demande ensuite une « passphrase » (équivalent d'un mot de passe, mais sous -forme de phrase). Cette phrase sert à fortifier la clef pour la rendre +forme de phrase). Cette phrase sert à fortifier la clé pour la rendre plus difficilement cassable. À partir de là, deux solutions :

    • si vous tapez une phrase, votre connection sera plus sûre, mais vous devrez utiliser ssh-agent pour ne pas avoir à la -retaper à chaque fois (voir plus bas)
    • +retaper à chaque fois (voir plus bas). Si votre clé privée est récupérée, elle ne peut pas être utilisée sans la passphrase associée.
    • vous ne tapez pas de phrase (et appuyez seulement sur -Enter), votre connexion sera moins sûre
    • +Enter), votre connexion sera moins sûre. N'importe qui ayant accès à votre clé privée pourra se connecter en s'identifiant à votre place.

    Que vous tapiez une phrase ou pas, à la fin vous verrez quelque chose comme 

    -Your identification has been saved in /usr/home/toto/.ssh/id_dsa.
    -Your public key has been saved in /usr/home/toto/.ssh/id_dsa.pub.
    +Your identification has been saved in /usr/home/toto/.ssh/id_rsa.
    +Your public key has been saved in /usr/home/toto/.ssh/id_rsa.pub.
     The key fingerprint is:
     1a:2a:3e:4a:1a:65:1c:89:10:92:9c:5c:1f:75:cc:de
     toto@machineloc
     
    -

    Que faire de la clef

    +

    Que faire de la clé ?

    Si l'on récapitule, ssh-keygen a généré deux -clefs :

    +clés :

      -
    • une clef privée (chiffrée si vous avez donné une phrase, non +
    • une clé privée (chiffrée si vous avez donné une phrase, non chiffrée sinon) qui est $HOME/.ssh/identity (ou -$HOME/.ssh/id_dsa si c'est du SSH2) et qui n'est -accessible qu'à vous
    • +$HOME/.ssh/id_rsa si c'est du SSH2) et qui n'est +accessible qu'à vous. -
    • une publique (non chiffrée) qui est -$HOME/.ssh/id_dsa.pub (ou +
    • une clé publique (non chiffrée) qui est +$HOME/.ssh/id_rsa.pub (ou $HOME/.ssh/identity.pub si c'est du SSH1) et qui peut -être lue par tout le monde
    • +être lue par tout le monde.
    Définition : qu'est-ce que ce -« $HOME » ? $HOME est ce qu'on appelle une +« $HOME » ? $HOME (ou ~) est ce qu'on appelle une variable d'environnement, qui sert à indiquer aux programmes quel est votre répertoire personnel (la racine de votre compte). Faites -echo $HOME pour savoir quel est le vôtre. Sur -clipper, c'est +echo $HOME dans un terminal sur une machine de l'ENS +pour savoir quel est le vôtre. Par exemple, sur les machines de l'ENS, c'est /users/promo/matiere/login. Pour en savoir plus, voir l'article « Concept : -arborescence » dans le n°3 du Hublot. +arborescence » dans le n°3 du Hublot.

    Maintenant, sur la machine distante, allez dans le -répertoire .ssh et éditez le fichier +répertoire ~/.ssh et éditez le fichier authorized_keys : ajoutez à la fin, et sur une seule ligne (attention aux éditeurs qui coupent les -lignes) la clef publique (identity.pub pour SSH1 ou -id_dsa.pub pour SSH2) que vous venez de générer. Procédez +lignes) la clé publique (identity.pub pour SSH1 ou +id_rsa.pub pour SSH2) que vous venez de générer (attention, +il faut bien ajouter la clé publique et non la clé privée !). Procédez ainsi pour toutes les machines distantes auxquelles vous voulez vous connecter sans avoir à taper votre mot de passe. Et voilà !

    @@ -276,11 +295,11 @@ connecter sans avoir à taper votre mot de passe. Et voilà !

    Si vous avez opté pour la solution « phrase de passe », bravo, votre -connexion est plus sûre. Mais vous devez taper à chaque fois ladite -phrase... Solution, utiliser ssh-agent. +connexion est plus sûre, votre clé privée ne peut pas être usurpée. Mais vous devez taper à chaque fois ladite +phrase... ce qui est vite pénible. Solution, utiliser ssh-agent.

    -

    D'abord, il faut lancer ssh-agent, qui gère les clefs +

    D'abord, il faut lancer ssh-agent, qui gère les clés d'identification. Si vous êtes logué dans une salle informatique de l'ENS avec la config conscrits, pas de problème, ssh-agent est déjà lancé. Si ce n'est pas le cas, il faut @@ -288,7 +307,7 @@ le lancer vous-même.

    -Comme l'agent est disponible dans tous les programmes qui découlent, +Comme l'agent est disponible dans tous les programmes lancés ultérieurement, on le lance au début d'une session. Par exemple, quand vous êtes en mode texte et que vous lancez le serveur X :

    @@ -308,28 +327,30 @@ Quand vous vous loguez à distance, c'est plutôt :

    Une fois lancé, l'agent vous suit dans toutes vos connexions à distance, et ainsi il est disponible partout. Il faut donner à l'agent -votre clef à gérer en tapant ssh-add. On vous demande +votre clé à gérer en tapant ssh-add. On vous demande alors votre phrase de passe :

     machine ~ $ ssh-add
    -Need passphrase for /home/toto/.ssh/identity (toto@machine)
    +Need passphrase for /home/toto/.ssh/id_rsa (toto@machine)
     Enter passphrase:
    -Identity added: /home/toto/.ssh/identity (toto@machine)
    +Identity added: /home/toto/.ssh/id_rsa (toto@machine)
     
    +

    Note : Les dernières versions des environnements de bureau sous Linux possèdent leur propre interface graphique qui sert de surcouche à ssh-agent. Par exemple, seahorse (ou Trousseau de clé Gnome) tient ce rôle dans Gnome. L'utilisation de ssh-agent peut alors être facilitée, notamment car ces logiciels déverrouillent les clés SSH avec le mot de passe de login directement.

    +

    Exécution d'une commande à distance

    Vous pouvez également utiliser ssh pour exécuter une -commande à distance. Par exemple, vous voulez, de votre machine -personnelle, connaître l'heure sur clipper, pour savoir si votre +commande à distance. Par exemple, si vous voulez, de votre machine +personnelle, connaître l'heure sur trolle.ens.fr, pour savoir si votre machine est en retard, en avance ou à l'heure.

    -machineloc ~ $ ssh clipper.ens.fr date
    +machineloc ~ $ ssh trolle.ens.fr date
     Fri Jul  4 12:01:49 MET DST 2003
     
    @@ -337,7 +358,7 @@ Fri Jul 4 12:01:49 MET DST 2003 N'oubliez pas de préciser toto@machine si vos logins sont différents entre les deux machines. Si vous voulez exécuter à distance une commande avec des options, mieux vaut mettre des guillemets. Par -exemple, je veux savoir si brick est une station Sun ou +exemple, je peux savoir si brick est une station Sun ou un PC, en utilisant la commande uname.

    @@ -350,6 +371,11 @@ i386 La réponse est « i386 », dénomination utilisée pour les PC.

    +

    Petite astuce pour IRC : Il est possible de se connecter sur IRC sur une machine de l'ENS directement avec la commande suivante (créer un alias pour plus de facilité) :

    +
    +machineloc ~ $ ssh login@trolle.ens.fr -t irc
    +
    +

    Message d'erreur

    @@ -368,12 +394,12 @@ Please contact your system administrator.

    -Ce message signifie que la clef ssh (l'identification) de la machine +Ce message signifie que la clé ssh (l'identification) de la machine distante a changé. En effet, à chaque fois que vous vous connectez à une machine par ssh, celle-ci présente à votre machine une sorte de carte d'identité, ainsi vous êtes sûr qu'il s'agit bien de la bonne machine et pas d'un pirate. Ou bien la machine a -réellement changé de clef ssh (à l'ENS, cela arrive de temps à autres +réellement changé de clé ssh (à l'ENS, cela arrive de temps à autres quand le SPI upgrade une machine), ou bien c'est une attaque de pirate. Il vaut mieux écrire au SPI pour savoir ce qu'il en est.

    @@ -407,15 +433,15 @@ distante, faites :

    Attention, n'oubliez pas les deux points à la fin. Vous devrez taper votre mot de passe (sauf si vous utilisez -l'authentification par clef publique, voir ci-dessus), puis +l'authentification par clé publique, voir ci-dessus), puis ssh se lancera dans le transfert en vous indiquant sa progression :

     machineloc ~ $ scp tagada.txt machinedist:
    -toto@machinedist's password: 
    -tagada.txt       100% |***************************************| 2263       00:00    
    +toto@machinedist's password:
    +tagada.txt       100% |***************************************| 2263       00:00
     
    @@ -458,6 +484,13 @@ Maintenant, nous allons envoyer notre fichier tagada.txt machineloc ~ $ scp tagada.txt machinedist:divers/blagues
    +

    + Et même vers n'importe quel répertoire (/bidule par exemple où / est la racine de la machine) : +

    +
    +machineloc ~ $ scp tagada.txt machinedist:/bidule
    +
    +

    De la machine distante à la machine locale

    Pour rapatrier des fichiers de la machine distante à votre machine @@ -496,7 +529,7 @@ le transfert machine locale -> machine distante, décrites ci-dessus.

    par exemple

    -
    sftp://conscrit@clipper.ens.fr/users/06/maths/conscrit/
    +
    sftp://conscrit@trolle.ens.fr/users/06/maths/conscrit/

    Une boîte de dialogue apparaît si nécessaire pour vous demander votre mot de passe. Vous pouvez ensuite copier, @@ -507,22 +540,26 @@ le transfert machine locale -> machine distante, décrites ci-dessus. gestion de fichiers de KDE, par exemple celles auxquelles font appel les fonctions Ouvrir et Enregistrer des divers logiciels.

    +

    Sous Gnome

    + +

    La même chose est possible sous Gnome, en passant par le menu "Connexion à un serveur" du gestionnaire de fichiers Nautilus.

    +

    Créer des alias

    Quand on utilise beaucoup la connexion distante, il devient très vite fastidieux d'avoir toujours à taper en entier le nom -clipper.ens.fr, a fortiori son adresse IP -129.199.129.1. S'il n'y a pas d'ambiguïté (en l'occurrence, -si vous n'utilisez jamais qu'un seul serveur portant le nom de clipper, -et pas, par exemple, clipper.ens.fr et clipper.chezmoi.fr), vous pouvez +trolle.ens.fr, a fortiori son adresse IP +129.199.129.38. S'il n'y a pas d'ambiguïté (en l'occurrence, +si vous n'utilisez jamais qu'un seul serveur portant le nom de trolle, +et pas, par exemple, trolle.ens.fr et trolle.chezmoi.fr), vous pouvez assigner un alias à une adresse. Pour ce faire, mettez dans le fichier $HOME/.ssh/config les lignes suivantes :

    -Host clipper
    +Host trolle
     User toto
    -HostName clipper.ens.fr
    +HostName trolle.ens.fr
     

    @@ -534,7 +571,7 @@ Ainsi, il suffira de taper :

    -machineloc ~ $ ssh clipper
    +machineloc ~ $ ssh trolle
     

    @@ -542,7 +579,7 @@ au lieu de  :

    -machineloc ~ $ ssh toto@clipper.ens.fr
    +machineloc ~ $ ssh toto@trolle.ens.fr
     

    @@ -551,7 +588,7 @@ en effet de taper :

    -machineloc ~ $ scp tagada.txt clipper:divers/blagues
    +machineloc ~ $ scp tagada.txt trolle:divers/blagues
     

    @@ -559,7 +596,7 @@ au lieu de :

    -machineloc ~ $ scp tagada.txt toto@clipper.ens.fr:divers/blagues
    +machineloc ~ $ scp tagada.txt toto@trolle.ens.fr:divers/blagues
     
    @@ -567,9 +604,9 @@ au lieu de :
    Mise à jour : à l'ENS, depuis décembre 2003, les -ordinateurs utilisent SSH2. Si vous aviez déjà une clef publique pour +ordinateurs utilisent SSH2. Si vous aviez déjà une clé publique pour vous connecter à l'ENS, il vaut mieux en changer. Il vous suffit de -générer une nouvelle clef, de type DSA, et de suivre +générer une nouvelle clé, de type RSA, et de suivre de nouveau la procédure.
    @@ -586,7 +623,7 @@ sûr :

      -
    • le client (par exemple, vous) et le serveur (clipper) +
    • le client (par exemple, vous) et le serveur (trolle.ens.fr) s'authentifient mutuellement, ce qui évite que des pirates se fassent passer pour l'un ou pour l'autre
    • les données échangées sur le réseau par le biais de @@ -608,7 +645,7 @@ responsables.

      -
      Auteur : Marie-Lan Nguyen, Marc Mezzarobba, Antoine Amarilli.
      +
      Auteur : Marie-Lan Nguyen, Marc Mezzarobba, Antoine Amarilli, Lucas Verney.
      From f71c7b9d1c63c35f0e7985e89cc1e952ce3f85cb Mon Sep 17 00:00:00 2001 From: Phyks Date: Mon, 14 Oct 2013 23:22:15 +0200 Subject: [PATCH 4/8] Updated SSH tunnel page pour sas.eleves.ens.fr + utilisation de SOCKS --- internet/loin/tunnel.tml | 52 +++++++++++++++++++++++++------------- internet/loin/tunnel0.png | Bin 29455 -> 31745 bytes 2 files changed, 35 insertions(+), 17 deletions(-) diff --git a/internet/loin/tunnel.tml b/internet/loin/tunnel.tml index a5f699a..1b90d12 100644 --- a/internet/loin/tunnel.tml +++ b/internet/loin/tunnel.tml @@ -14,7 +14,9 @@ Certains sites Internet ne sont accessibles que depuis certains ordinateurs, serveurs ou domaines très précis. Par exemple, pour accéder à l'Intranet de l'ENS, on doit se connecter depuis l'un des ordinateurs - de l'École. Cette contrainte permet d'être certain que seules les + de l'École. De même, pour accéder à certains articles avec l'abonnement de + l'École, il faut se connecter depuis un des ordinateurs de l'École. Cette + contrainte permet d'être certain que seules les personnes autorisées pourront accéder à certaines données, après s'être préalablement identifiées au moyen d'un mot de passe.

      @@ -36,7 +38,7 @@
      1. ouvrir une connexion sécurisée avec ce serveur (par exemple - clipper, à l'ENS) ;
      2. + sas.eleves.ens.fr, à l'ENS) ;
      3. dire à votre navigateur de se brancher sur cette connexion ;
      4. vous connecter à des sites comme si vous étiez sur ce @@ -57,7 +59,8 @@

        Avec Linux ou Mac OS X

        Avec Linux ou tout autre dérivé d'UNIX (BSD, Solaris, Mac OS X, - etc.), la procédure est sans doute la plus simple.

        + etc.), la procédure est sans doute la plus simple. Suivez les étapes + suivantes pour mettre en place un tunnel SOCKS entre votre machine et la machine distante.

          @@ -75,7 +78,7 @@ commande suivante (faites un copier-coller si vous voulez être sûr de ne pas faire d'erreur) : -
          toto@ordinateur $ ssh -N -T -L 3128:www-cache.ens.fr:3128 monlogin@clipper.ens.fr
          +
          toto@ordinateur $ ssh -ND 3128 monlogin@sas.eleves.ens.fr
          Attention ! @@ -94,13 +97,15 @@ tunnel SSH. Donnez votre mot de passe. La première fois, on vous demandera si vous acceptez la clef SSH, afin d'éviter toute tentative d'usurper l'identité de - clipper : vérifiez que le fingerprint indiqué est bien - "17:b2:61:d4:51:66:48:0d:c4:a4:3f:f1:01:ed:a8:b5" et répondez « Yes ». + la machine distante : vérifiez que le fingerprint indiqué est bien + "d2:2f:2d:e6:22:17:16:1c:54:5f:e3:9a:0b:88:db:37" et répondez « Yes ».
          Petite explication technique : la - commande indiquée plus haut demande au serveur - www-cache.ens.fr de nous envoyer ce qu'on lui demande par son - port 3128 sur notre port 3128. + commande indiquée plus haut demande à ssh de créer un tunnel dynamique entre + la machine locale et la machine distante (sas.eleves.ens.fr) en utilisant le port 3128. + Tout le trafic arrivant sur ce port sur la machine locale sera redirigé sur la machine + distante (option -D 3128). De plus, on dit à ssh de ne pas exécuter de commandes distantes + avec l'option -N.
          @@ -108,7 +113,13 @@ Si ssh n'a pas signalé d'erreur, le tunnel est maintenant opérationel et vous pouvez passer à la section suivante. (Il est normal que ssh ne vous rende pas la main, ou qu'il vous rende la main sans ouvrir de shell sur - clipper.) + sas.eleves.ens.fr.) + +
          Si vous voulez avoir plus d'informations sur la connexion SSH + et l'état du tunnel, vous pouvez utiliser l'argument " -v " (à ajouter après ssh + dans la ligne de commande précédente) qui donnera un log détaillé de ce que fait ssh. + Dans ce cas, le signe que le tunnel est ouvert est la ligne "entering interactive session." +
        @@ -133,7 +144,7 @@
      5. dans l'onglet « Session » :
        1. Host name (or IP - address) : clipper.ens.fr
        2. + address) : sas.eleves.ens.fr
        3. Port : 22
        4. Protocole : SSH
        5. Saved sessions : ENS par tunnel @@ -175,8 +186,8 @@ identifiant (login) et votre mot de passe. La première fois, on vous demandera si vous acceptez la clef SSH, afin d'éviter toute tentative d'usurper l'identité de - clipper : vérifiez que le fingerprint indiqué est bien - "17:b2:61:d4:51:66:48:0d:c4:a4:3f:f1:01:ed:a8:b5" et répondez « Yes ». + sas.eleves.ens.fr : vérifiez que le fingerprint indiqué est bien + "d2:2f:2d:e6:22:17:16:1c:54:5f:e3:9a:0b:88:db:37" et répondez « Yes ».

          @@ -185,7 +196,8 @@

          Que vous utilisiez Linux, Mac OS, Windows, FreeBSD ou autre, vous avez maintenant ouvert le tunnel. Le signe qu'il est ouvert, - c'est la fenêtre de terminal ouverte.

          + c'est la fenêtre de terminal ouverte. Attention, si vous fermez la fenêtre + de terminal, le tunnel se fermera.

          Il reste à emprunter ce tunnel. Pour cela, vous devrez configurer votre navigateur pour lui dire d'utiliser @@ -211,11 +223,17 @@ />

          -

          Indiquez à votre navigateur que vous voulez utiliser un +

          Si vous avez suivi la méthode pour Windows, indiquez à votre navigateur + que vous voulez utiliser un proxy, en cliquant sur « Manual proxy configuration », puis en tapant localhost comme proxy HTTP, - et 3128 comme port :

          + et 3128 comme port :

          +

          Si vous avez suivi la méthode pour Linux, indiquez à votre navigateur + que vous voulez utiliser un proxy, en cliquant sur « Manual proxy + configuration », puis en + tapant localhost comme proxy SOCKS, + et 3128 comme port :

          Paramètres de connection dans
 	  Firefox @@ -319,7 +337,7 @@ emprunté. Il suffit pour cela de :

          d'« Accès réservé aux postes de l'ENS ».

          - Auteurs : Baptiste Mélès, Lionel Fourquaux. + Auteurs : Baptiste Mélès, Lionel Fourquaux, Lucas Verney.
          diff --git a/internet/loin/tunnel0.png b/internet/loin/tunnel0.png index 9be9c36b0331c698a38f86548d2eeac8da74ac4d..a6556512498ceb4460b5b9aadc9f7fee1c80454d 100644 GIT binary patch literal 31745 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 z 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 From 7d1da4c90ff28d440be6ccf57b550c8febc850ee Mon Sep 17 00:00:00 2001 From: Antoine Amarilli Date: Sat, 19 Oct 2013 23:43:44 +0200 Subject: [PATCH 5/8] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20la=20documentat?= =?UTF-8?q?ion=20de=20lettre?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La version installée sur clipper semble utilisable, utf8 semble préférable, et \name{} est nécessaire pour que l'invocation de \closing{} compile. --- logiciels/latex/lettre.tml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/logiciels/latex/lettre.tml b/logiciels/latex/lettre.tml index 8e6e84b..f57d560 100644 --- a/logiciels/latex/lettre.tml +++ b/logiciels/latex/lettre.tml @@ -69,13 +69,16 @@ utilisant le package french de babel

          La classe lettre

          La classe lettre se fonde sur letter, mais -avec quelques améliorations. Elle a été écrite par Denis Mégévand. -Attention ! Pour l'instant, la version installé sur clipper a des bugs -un peu pénible (double compilation nécessaire parce qu'elle ne reconnaît + avec quelques améliorations. Elle a été écrite par Denis Mégévand.

          + +

          Les bases

          @@ -86,12 +89,13 @@ ici) :

           \documentclass[11pt]{lettre}
           
          -\usepackage[latin1]{inputenc}
          +\usepackage[utf8]{inputenc}
           \usepackage[T1]{fontenc}
           \usepackage[francais]{babel}
           
           \begin{document}
           \begin{letter}{destinataire}
          +\name{expéditeur}
           \def\concname{Objet :~} % On définit ici la commande 'objet'
           \conc{Objet de la lettre}
           \nref{Références de la lettre, de votre point de vue}
          
          From 7df713f8d60d06e82d6d8c7f148d0415bb825e68 Mon Sep 17 00:00:00 2001
          From: Antoine Amarilli 
          Date: Sun, 20 Oct 2013 00:02:36 +0200
          Subject: [PATCH 6/8] =?UTF-8?q?Pr=C3=A9cision=20et=20typos?=
          MIME-Version: 1.0
          Content-Type: text/plain; charset=UTF-8
          Content-Transfer-Encoding: 8bit
          
          ---
           faq/mail.tml | 10 +++++-----
           1 file changed, 5 insertions(+), 5 deletions(-)
          
          diff --git a/faq/mail.tml b/faq/mail.tml
          index d1dc29b..1e3e8d8 100644
          --- a/faq/mail.tml
          +++ b/faq/mail.tml
          @@ -84,7 +84,7 @@ href="&url.tuteurs;internet/courrier/mail-pine.html">Pine, Mutt...).
        6. Utiliser un protocole comme POP ou IMAP, capable de - ramener le courrier de clipper jusque chez vous. C'est possible + ramener le courrier de clipper jusque chez vous. C'est possible avec la plupart des logiciels de mail. Pour un exemple avec Thunderbird, consultez la page sur @@ -109,7 +109,7 @@ ordinateur par SSH, et utiliser les fonctions d'envoi de votre logiciel de mail favori.
        7. Utiliser le serveur SMTP de clipper. Pour ce faire, - adaptez les instructiosn de la page sur le courrier électronique pour votre logiciel de mail favori.
        8. @@ -158,9 +158,9 @@ fichier.

            -
          1. Connectez-vous sur clipper, soit physiquement, soit -par le biais de SSH/
          2. +
          3. Connectez-vous sur clipper, soit physiquement sur une des + machines des salles informatiques, soit par le biais de SSH/
          4. Lancez un éditeur : tapez par exemple From fa952235e89663b057b24e99a4a99a0bf7dfc241 Mon Sep 17 00:00:00 2001 From: Antoine Amarilli Date: Sun, 20 Oct 2013 00:04:40 +0200 Subject: [PATCH 7/8] =?UTF-8?q?Signaler=20un=20paragraphe=20p=C3=A9rim?= =?UTF-8?q?=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- theorie/reseaux.tml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/theorie/reseaux.tml b/theorie/reseaux.tml index 846cab3..cb62a70 100644 --- a/theorie/reseaux.tml +++ b/theorie/reseaux.tml @@ -333,8 +333,9 @@ l'ENS.

            Prenons l'exemple de galion, tentant d'envoyer un message (sous la -forme d'un paquet IP, comme Internet Protocol) à aviso, en -Infirmatique. +forme d'un paquet IP, comme Internet Protocol) à aviso, en Infirmatique. +(Attention, ce paragraphe n'est plus à jour : aviso n'est plus en salle Infi et +son adresse IP a changé.)

            From ba6fbfb716281499bcf92617a23fcf51bfc3cb4d Mon Sep 17 00:00:00 2001 From: Antoine Amarilli Date: Sun, 20 Oct 2013 00:04:58 +0200 Subject: [PATCH 8/8] =?UTF-8?q?Mettre=20=C3=A0=20jour=20:=20clipper=20=3D>?= =?UTF-8?q?=20sas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc-interne.tml | 6 +- faq/autres_sites.tml | 22 +++---- faq/flrn.tml | 4 +- faq/utf8.tml | 10 +-- faq/vie.tml | 10 +-- internet/courrier/collectif.tml | 2 +- internet/courrier/mail-mutt.tml | 4 +- internet/courrier/mail-pine.tml | 2 +- internet/loin/ssh.tml | 44 ++++++------- internet/loin/tunnel.tml | 16 ++--- internet/virus.tml | 4 +- internet/web/creer.tml | 12 ++-- internet/web/htaccess.tml | 8 +-- logiciels/gaim.tml | 4 +- logiciels/latex/index.tml | 2 +- meta/recrutement.tml | 6 +- ressources/phare/index.tml | 34 +++++----- ressources/phare/phare-config.tml | 76 +++++++++++----------- theorie/internet.tml | 8 +-- theorie/reseaux.tml | 4 +- unix/aide.tml | 14 ++-- unix/droits.tml | 28 ++++---- unix/editeurs/emacs.tml | 8 +-- unix/editeurs/nedit.tml | 4 +- unix/editeurs/super_emacs.tml | 4 +- unix/editeurs/vim.tml | 4 +- unix/exercices/enchainer.tml | 2 +- unix/exercices/solutions/enchainer-sol.tml | 6 +- unix/fichiers.tml | 4 +- unix/formats-memo.tml | 4 +- unix/imprimer.tml | 8 +-- unix/jeux.tml | 4 +- unix/loguer.tml | 29 +++++---- unix/place_disque.tml | 24 +++---- unix/shell/index.tml | 2 +- 35 files changed, 215 insertions(+), 208 deletions(-) diff --git a/doc-interne.tml b/doc-interne.tml index 5d32aee..c23fead 100644 --- a/doc-interne.tml +++ b/doc-interne.tml @@ -54,7 +54,7 @@ chez tuteurs (si on n'en a pas déjà) puis de faire (de chez soi ou d'une machine de l'école)

            -
            $ git clone tuteurs@clipper:www.git 
            +
            $ git clone tuteurs@sas.eleves:www.git 
            Pour devenir modérateur, écrivez aux administrateurs de forum : forum@clipper.

            diff --git a/ressources/phare/index.tml b/ressources/phare/index.tml index 67b85ff..9c96bc6 100644 --- a/ressources/phare/index.tml +++ b/ressources/phare/index.tml @@ -42,10 +42,10 @@ courrier entrant vers phare. On rappelle que la commande que vous devez taper, c'est ce qui suit le $. Sauvegardez votre boîte de réception sur votre compte en remplaçant dans ce qui suit login par -votre login(clipper):

            +votre login (clipper):

            - clipper ~ $ rsync -av /var/mail/login Mail/boite_clipper
            + sas ~ $ rsync -av /var/mail/login Mail/boite_clipper
             

            Vérifiez la taille totale de vos messages, et en particulier que vous @@ -53,7 +53,7 @@ votre login(clipper):

            -clipper ~ $ du -sh Mail
            +sas ~ $ du -sh Mail
             187M   Mail
             
            @@ -62,7 +62,7 @@ votre login(clipper):

            -clipper ~ $ rsync -vaczP Mail login_phare@phare.normalesup.org:
            +sas ~ $ rsync -vaczP Mail login_phare@phare.normalesup.org:
             
            @@ -81,14 +81,14 @@ de supprimer les fichiers inutiles et encombrants.

            « vers_phare ». Cette méthode a plusieurs avantages, notamment de vous permettre de vérifier que les fichiers que vous voulez déplacer n'excède pas votre quota, et de ne pas transférer vos fichiers de - configuration, qui sont spécifiques à clipper. + configuration, qui sont spécifiques à sas.eleves.

            -

            Connectez-vous sur clipper comme pour transférer vos mails (cf +

            Connectez-vous sur sas.eleves comme pour transférer vos mails (cf ci-dessus). Créez le répertoire « vers_phare »:

            -clipper ~ $ mkdir vers_phare
            +sas ~ $ mkdir vers_phare
             

            Utilisez les commandes mv et rm pour déplacer @@ -98,8 +98,8 @@ de supprimer les fichiers inutiles et encombrants.

            Déplacer des fichiers et des répertoires avec mv:

            -clipper ~ $ mv maitrise vers_phare/
            -clipper ~ $ mv cubiques2.pdf vers_phare/
            +sas ~ $ mv maitrise vers_phare/
            +sas ~ $ mv cubiques2.pdf vers_phare/
             

            Vérifier que vous ne dépassez pas votre quota sur phare. Attention, il @@ -107,7 +107,7 @@ de supprimer les fichiers inutiles et encombrants.

            lors de l'étape précédente à votre quota.

            -clipper ~ $ du -sh vers_phare
            +sas ~ $ du -sh vers_phare
             407M    vers_phare
             
            @@ -115,7 +115,7 @@ de supprimer les fichiers inutiles et encombrants.

            -clipper ~ $ rsync -vaczP vers_phare/ login_phare@phare.normalesup.org:depuis_clipper
            +sas ~ $ rsync -vaczP vers_phare/ login_phare@phare.normalesup.org:depuis_sas
             

            S'aider avec WinSCP ou scp

            @@ -148,7 +148,7 @@ et les répertoires qui prennent le plus de place sur votre compte. Le résultat taille en kilo-octets. Ce paragraphe est un bref résumé, il existe une page avec plus de détails sur la commande du.

            -clipper ~ $ du -ak | sort -nr | head -10
            +sas ~ $ du -ak | sort -nr | head -10
             98280   .
             22007   ./www
             1658    ./Mail
            @@ -166,7 +166,7 @@ critères.
             ls -lhS pour trier par taille. Commencez par trier le haut de la liste, 
             les fichiers les plus encombrants.
             
            -clipper ~ $ ls -lhS |head -30
            +sas ~ $ ls -lhS |head -30
             total 56M
             -rw-r--r--   1 conduche math98   7.0M Sep 21  2005 0508_grand.zip
             -rw-r--r--   1 conduche math98   2.8M Feb 25  2003 chat.png
            @@ -178,12 +178,12 @@ total 56M
             ls -lht pour trier par date: est-ce que vos fichiers datant d'il y a 4 
             ans sont toujours utile ?
             
            -clipper ~ $ ls -lht
            +sas ~ $ ls -lht
             (...)
             -rw-r--r--   1 conduche math98    868 Nov 26  2002 linux-install.dvi
             -rw-r--r--   1 conduche math98   1.1K Nov 26  2002 linux-install.tex
             -rw-r--r--   1 conduche math98    24K Oct 25  2002 555239470.pdf
            -clipper ~ $
            +sas ~ $
             
            Les fichiers les plus anciens sont en bas de la liste. @@ -192,10 +192,10 @@ Ce paragraphe était un bref résumé, il existe une page avec
          5. Pour effacer les fichiers inutiles, utilisez la commande rm.
            -clipper ~ $ rm 0508_*
            +sas ~ $ rm 0508_*
             rm: remove regular file `0508.zip'? y
             rm: remove regular file `0508_grand.zip'? y
            -clipper ~ $
            +sas ~ $
             
            Le caractère * sert de caractère générique.
          6. diff --git a/ressources/phare/phare-config.tml b/ressources/phare/phare-config.tml index 9d1019d..52cafba 100644 --- a/ressources/phare/phare-config.tml +++ b/ressources/phare/phare-config.tml @@ -7,15 +7,15 @@ Phare: configuration -

            Transférer ses fichiers de configuration depuis clipper vers Phare

            +

            Transférer ses fichiers de configuration depuis sas vers Phare

            Pour transférer vos fichiers de configuration (fichiers ou répertoires du type .blablarc ou simplement .blabla), il est conseillé de procéder au cas par cas, les logiciels sur phare.normalesup.org n'étant pas forcément totalement compatibles avec ceux de -clipper.

            +sas.

            -

            Pour que clipper ne vous redemande pas votre mot de passe à chaque transfert, il est vivement conseillé de -configurer sa connexion ssh et d'installer des -clefs. Dans notre cas, la machine locale est phare, et la machine distante clipper.

            +

            Pour que sas ne vous redemande pas votre mot de passe à chaque transfert, il est vivement conseillé de +configurer sa connexion ssh et d'installer des +clefs. Dans notre cas, la machine locale est phare, et la machine distante sas.eleves.

            Les fichiers qu'il est conseillé de transférer

            Certains fichiers contiennent simplement des données personnelles, comme la liste d'adresse de votre carnet d'adresse, la liste des messages lus dans forum, etc... @@ -23,14 +23,14 @@ Il peut être utile de récupérer ces fichiers, plutôt que d'avoir à reconsti

            Carnet d'adresse et signature

            Si vous utilisez pine

            -

            Les fichiers .addressbook et .addressbook.lu -contiennent la liste de vos contacts, et le fichier .signature +

            Les fichiers .addressbook et .addressbook.lu +contiennent la liste de vos contacts, et le fichier .signature votre signature automatique. Pour les récupérer, tapez les commandes suivantes

            -phare ~ $ rsync -vaczP clipper:.addressbook\* .
            -receiving file list ... 
            +phare ~ $ rsync -vaczP sas.eleves:.addressbook\* .
            +receiving file list ...
             2 files to consider
             .addressbook
                     2019 100%  246.46kB/s    0:00:00 (xfer#1, to-check=1/2)
            @@ -39,8 +39,8 @@ receiving file list ...
             
             sent 56 bytes  received 1929 bytes  3970.00 bytes/sec
             total size is 6185  speedup is 3.12
            -phare ~ $ rsync -vaczP clipper:.signature\* . 
            -receiving file list ... 
            +phare ~ $ rsync -vaczP sas.eleves:.signature\* .
            +receiving file list ...
             1 file to consider
             
             sent 16 bytes  received 106 bytes  244.00 bytes/sec
            @@ -57,15 +57,15 @@ votre signature automatique. Pour les récupérer, tapez les commandes suivantes
             

            -phare ~ $ rsync -vaczP clipper:.muttalias .
            -receiving file list ... 
            +phare ~ $ rsync -vaczP sas.eleves:.muttalias .
            +receiving file list ...
             1 file to consider
             .muttalias
                      465 100%  454.10kB/s    0:00:00 (xfer#1, to-check=0/1)
             
             sent 36 bytes  received 179 bytes  430.00 bytes/sec
             total size is 465  speedup is 2.16
            -phare ~ $ rsync -vaczP clipper:.signature\* .
            +phare ~ $ rsync -vaczP sas.eleves:.signature\* .
             receiving file list ...
             1 file to consider
             
            @@ -74,19 +74,19 @@ total size is 60  speedup is 0.49
             phare ~ $
             
            -

            Les autres réglages de mutt sont dans le fichier .muttrc qu'il -est déconseillé de récupérer. Les modifications doivent être faites à la main. +

            Les autres réglages de mutt sont dans le fichier .muttrc qu'il +est déconseillé de récupérer. Les modifications doivent être faites à la main. Si vous voulez quand même le récupérer, à vos risques et périls, regardez la section suivante.

            La liste des messages lus dans forum ou les news

            Si vous utilisez flrn

            -

            Lorsque vous lisez des groupes de discussion avec flrn (ce qui est la situation par défaut), celui-ci stocke différentes informations (groupes auxquels vous êtes abonnés, messages lus) dans des fichiers de configuration. On peut avoir envie de les récupérer. Sur phare, tous les fichiers de configuration de flrn sont rangés dans le répertoire $HOME/.flrn/. Sur votre compte clipper, si vous n'avez pas de répertoire .flrn, les fichiers sont dans votre répertoire $HOME.

            +

            Lorsque vous lisez des groupes de discussion avec flrn (ce qui est la situation par défaut), celui-ci stocke différentes informations (groupes auxquels vous êtes abonnés, messages lus) dans des fichiers de configuration. On peut avoir envie de les récupérer. Sur phare, tous les fichiers de configuration de flrn sont rangés dans le répertoire $HOME/.flrn/. Sur votre compte sas, si vous n'avez pas de répertoire .flrn, les fichiers sont dans votre répertoire $HOME.

            Les commandes suivantes récupèrent la liste des messages lu dans tous les newsgroups lu avec flrn. Si vous lisez aussi les dépêches AFP ou usenet avec flrn, ces listes là seront aussi récupérées.

            -phare ~/.flrn/ $ rsync -vaczP clipper:.flnewsrc\* .
            -receiving file list ... 
            +phare ~/.flrn/ $ rsync -vaczP sas.eleves:.flnewsrc\* .
            +receiving file list ...
             2 files to consider
             
             sent 32 bytes  received 155 bytes  41.56 bytes/sec
            @@ -94,10 +94,10 @@ total size is 7094  speedup is 37.94
             phare ~/.flrn $
             
            -

            quadrapassel

            diff --git a/unix/loguer.tml b/unix/loguer.tml index 390bc36..b962038 100644 --- a/unix/loguer.tml +++ b/unix/loguer.tml @@ -182,7 +182,7 @@ la prononciation du mot de passe :

            -clipper ~ $ apg -t -M N
            +sas ~ $ apg -t -M N
             natbyn7 (nat-byn-SEVEN)
             whon3ok (whon-THREE-ok)
             vajmyik4 (vaj-myik-FOUR)
            @@ -200,7 +200,7 @@ minuscules.
             

            -clipper ~ $ apg -t -M NC
            +sas ~ $ apg -t -M NC
             PakCod0 (Pak-Cod-ZERO)
             ekMyk6 (ek-Myk-SIX)
             prubEn3 (prub-En-THREE)
            @@ -218,7 +218,7 @@ mode par défaut avec l'option -a 1. Vous obtiendrez par
             exemple : 

            -clipper ~ $ apg -a 1 -M NC
            +sas ~ $ apg -a 1 -M NC
             ZM9SX0S9O0
             ZIRU7XIR3
             ZLOPH9XJ
            @@ -234,17 +234,22 @@ Pour des raisons techniques, on ne peut pas toujours (suivant
             l'évolution de la config des machines de l'école) changer son mot de
             passe depuis n'importe quelle machine des salles info. Le plus simple
             est de commencer par se connecter sur le serveur des élèves,
            -clipper, en tapant dans une fenêtre de terminal la commande
            -ssh clipper&thsp;:
            +sas, en tapant dans une fenêtre de terminal la commande
            +ssh sas.eleves&thsp;:
             

            -trimaran ~ $ ssh clipper
            -Last login: Wed Dec 24 18:29:49 2008 from trimaran
            -Sun Microsystems Inc.   SunOS 5.9       Generic May 2002
            -*********************************************************
            -You have new mail.
            -clipper ~ $
            +trimaran ~ $ ssh sas.eleves
            +Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.2.0-54-generic x86_64)
            +
            + * Documentation:  https://help.ubuntu.com/
            +
            +86 packages can be updated.
            +41 updates are security updates.
            +
            +No mail.
            +Last login: Sat Oct 19 23:46:59 2013 from gam92-1-78-192-93-110.fbxo.proxad.net
            +sas ~ $
             

            Une fois que vous avez choisi votre nouveau mot de passe, tapez @@ -252,7 +257,7 @@ toujours dans la fenêtre de terminal passwd :

            -clipper ~ $ passwd
            +sas ~ $ passwd
             passwd:  Changing password for toto
             Enter login(NIS) password: 
             
            diff --git a/unix/place_disque.tml b/unix/place_disque.tml index b669b95..cf37814 100644 --- a/unix/place_disque.tml +++ b/unix/place_disque.tml @@ -71,7 +71,7 @@ sur les répertoires) :

            -clipper ~ $ du -k histoire
            +sas ~ $ du -k histoire
             1973    histoire/maitrise
             127     histoire/sources/AN
             36      histoire/sources/divers
            @@ -133,7 +133,7 @@ faites un du -sk à la racine de votre compte :
             

            -clipper ~ $ du -sk
            +sas ~ $ du -sk
             98280   .
             
            @@ -156,7 +156,7 @@ toujours pour le répertoire « histoire » de Toto :

            -clipper ~ $ du -ak histoire
            +sas ~ $ du -ak histoire
             200     histoire/maitrise/maitrise.dvi.bz2
             29      histoire/maitrise/1.html
             6       histoire/maitrise/maitrise.tex
            @@ -177,7 +177,7 @@ la même chose) :
             

            -clipper ~ $ du -ak histoire/maitrise/maitrise.tex
            +sas ~ $ du -ak histoire/maitrise/maitrise.tex
             6       histoire/maitrise/maitrise.tex
             
            @@ -191,7 +191,7 @@ les répertoires qui prennent le plus de place sur votre compte.

            -clipper ~ $ du -ak | sort -nr | head -10
            +sas ~ $ du -ak | sort -nr | head -10
             98280   .
             22007   ./www
             1658    ./Mail
            @@ -247,7 +247,7 @@ redirection (>) :
             

            -clipper ~ $ du -ak | sort -nr | head -50 > gros_fichiers.txt
            +sas ~ $ du -ak | sort -nr | head -50 > gros_fichiers.txt
             

            @@ -270,7 +270,7 @@ principale.

            -clipper ~ $ ls -s /var/mail | grep toto
            +sas ~ $ ls -s /var/mail | grep toto
             1142    /var/mail/toto
             
            @@ -292,7 +292,7 @@ lettres :

            -clipper ~ $ ls -s /var/mail | sort -nr | head -10
            +sas ~ $ ls -s /var/mail | sort -nr | head -10
             161704 blevy
             116728 derrida
              75888 hcartan
            @@ -337,7 +337,7 @@ utilisé, et le point de montage. Voici un exemple presque complet :
             

            -clipper ~ $ df -h
            +sas ~ $ df -h
             Filesystem            Size  Used Avail Use% Mounted on
             (...)
             /dev/dsk/c0t8d0s1     4.2G  3.9G  261M  94% /users/95
            @@ -364,10 +364,10 @@ permet de repérer facilement la vôtre :
             

            -clipper ~ $ df -h /var/mail
            +sas ~ $ df -h /var/mail
             Filesystem            Size  Used Avail Use% Mounted on
             /dev/dsk/c0t10d0s3    8.4G  5.1G  3.2G  62% /var/mail
            -clipper ~ $ df -h /users/03
            +sas ~ $ df -h /users/03
             Filesystem            Size  Used Avail Use% Mounted on
             /dev/dsk/c0t12d0s3     12G  6.4G  4.8G  58% /users/03
             
            @@ -406,7 +406,7 @@ conserve l'intégrale de Village People sur son compte... Même s'il n'y a pas de quotas, on considère généralement qu'il faut de bonnes raisons pour occuper plus de 100 Mo d'espace disque. « C'est ridicule, le disque dur de mon PC fait -100 Go ! », me direz-vous. Certes, mais +1000 Go ! », me direz-vous. Certes, mais clipper n'a pas les mêmes contraintes qu'une machine personnelle : le matériel est différent, et il y a des sauvegardes quotidiennes, imaginez le volume des données stockées ! diff --git a/unix/shell/index.tml b/unix/shell/index.tml index ba21968..5354ea5 100644 --- a/unix/shell/index.tml +++ b/unix/shell/index.tml @@ -22,7 +22,7 @@ commandes. Par exemple, vous y tapez pine ou instructions et vous dit quelque chose comme :

            -
            clipper ~ $
            +
            sas ~ $

            La coquille magique