diff --git a/internet/loin/ssh.tml b/internet/loin/ssh.tml index bab81dc..eee5515 100644 --- a/internet/loin/ssh.tml +++ b/internet/loin/ssh.tml @@ -44,42 +44,56 @@ ensuite en danger les autres utilisateurs de l'ENS. Alors soyez responsables.

-

-Par ailleurs, ssh n'est vraiment pas une -particularité UNIX. Vous pouvez vous connecter par ssh -également avec Windows ou MacOS. Reportez-vous à notre documentation -sur les dangers de -telnet, nous vous y indiquons quels programmes vous pouvez +

+À savoir : le protocole SSH n'est pas une +particularité UNIX. Vous pouvez vous tout aussi bien vous connecter +par ssh avec Windows ou Mac OS. Reportez-vous à notre +documentation sur les dangers de +Telnet, nous vous y indiquons quels programmes vous pouvez utiliser pour faire du ssh. Vous pouvez également consulter, sur le site des WinTuteurs, le tutorial -sur PuTTY. -

+sur PuTTY (Windows). +

Se connecter

-L'utilisation de ssh pour se connecter à une machine est extrêmement -simple sous Unix et Linux. +L'utilisation de ssh pour se connecter à une machine est +extrêmement simple.

+
+Définitions : par machine locale, on +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, +la machine locale est votre propre ordinateur, la machine distante est +clipper. +
+ +
-drakkar ~ $ ssh <login>@<nom de la machine>
+machineloc ~ $ ssh login@machinedist
 

-Ou bien : +On peut aussi utiliser la syntaxe équivalente :

-drakkar ~ $ ssh <nom de la machine> -l <login>
+machineloc ~ $ ssh machinedist -l login
 

-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.121.1). +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.121.1).

Si vous avez le même login sur les deux machines en question, ce @@ -87,7 +101,7 @@ n'est pas la peine de le mentionner, tapez simplement :

-drakkar ~ $ ssh <nom de la machine>
+machineloc ~ $ ssh machinedist
 

@@ -96,8 +110,8 @@ sur cette machine, vous verrez un message tel que celui-ci :

-drakkar ~ $ ssh toto@machine.monlabo.fr
-The authenticity of host 'machine.monlabo.fr (111.222.333.4)' can't be established.
+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)? 
 
@@ -109,13 +123,15 @@ continuer. ssh vous dira alors :

-Warning: Permanently added 'machine.monlabo.fr,111.222.333.4' (RSA1) to
+Warning: Permanently added 'machinedist,111.222.333.4' (RSA1) to
 the list of known hosts.
 

Ce qui signifie que ssh ne vous embêtera plus à poser la -question. +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.

Authentification par mot de passe

@@ -151,19 +167,76 @@ d sur une machine distante sans avoir à taper de mot de passe.

+

Type de clef

+ +

+Il existe différentes versions de SSH. Suivant le type de version +utilisé sur la machine distante, le type de clef à 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 +distante, tapez ssh -v sur la machine distante. +

+ +

+Ainsi, sur clipper, ça donne : +

+ +
+clipper ~ $ ssh -v
+SSH Version 1.2.26  (SSF-1.2.26.2, SSH compatible)
+[sparc-sun-solaris2.5], protocol version 1.5.
+Standard version.  Does not use RSAREF.
+
+ +

+Le « protocol version 1.5 » vous indique qu'il s'agit de SSH1. Un SSH +récent vous montrera quelque chose comme : +

+ +
+earendil ~ $ ssh -v       
+OpenSSH_3.6.1, SSH protocols 1.5/2.0, OpenSSL 0x0090701f
+
+ +

+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

Pour ce faire, commencez par taper la commande ssh-keygen (comme key generator) sur la machine -locale (et pas sur la machine à distance). 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/identity : +locale (et pas sur la machine à distance).

-drakkar ~ $ ssh-keygen
+machineloc ~ $ ssh-keygen
+
+ +

+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 RSA1 (SSH1) : +

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

+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/identity pour +SSH1 et $HOME/.ssh/id_dsa pour SSH2 : +

+ +
+machineloc ~ $ ssh-keygen
 Initializing random number generator...
 Generating p:
 ...........................................................................
@@ -173,37 +246,38 @@ Computing the keys...
 Testing the keys...
 Key generation complete.
 Enter file in which to save the key
-(/users/00/litt/toto/.ssh/identity): 
+(/usr/home/toto/.ssh/identity): 
 

Appuyez sur Enter pour accepter la -localisation de la clef. 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 plus difficilement cassable. À partir de là, deux -solutions : +localisation de la clef (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 +plus difficilement cassable. À partir de là, deux solutions :

-

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

+

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

 Your identification has been saved in
-/users/00/litt/toto/.ssh/identity.
+/usr/home/toto/.ssh/identity.
 Your public key is:
 1024 37
 123123123123123123123123123123123123123123123123123123123123123123123123123123123123123
 123123123123123123123123123123123123123123123123123123123123123123123123123123123123123
 123123123123123123123123123123123123 toto@machine
 Your public key has been saved in
-/users/00/litt/toto/.ssh/identity.pub
+/usr/home/toto/.ssh/identity.pub
 

Que faire de la clef

@@ -215,25 +289,42 @@ clefs :

+
+Définition : qu'est-ce que ce +« $HOME » ? $HOME 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 +/users/promo/matiere/login. Pour en savoir plus, voir +l'article « Concept : +arborescence » dans le n°3 du Hublot. +
+

Maintenant, sur la machine distante, allez dans le 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 que vous venez de générer. Procédez ainsi -pour toutes les machines distantes auxquelles vous voulez vous +lignes) la clef publique (identity.pub pour SSH1 ou +id_dsa.pub pour SSH2) que vous venez de générer. Procédez +ainsi pour toutes les machines distantes auxquelles vous voulez vous connecter sans avoir à taper votre mot de passe. Et voilà !

-

Utiliser ssh-agent

+

Utiliser ssh-agent

Si vous avez opté pour la solution « phrase de passe », bravo, votre @@ -245,22 +336,25 @@ phrase... Solution, utiliser ssh-agent. 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 -le lancer vous-même. Comme l'agent est disponible dans tous les -programmes qui découlent, on le lance au début d'une session. Par -exemple, quand vous êtes en mode texte et que vous lancez le serveur -X : +le lancer vous-même. +

+ +

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

-machine ~ $ ssh-agent startx
+machineloc ~ $ ssh-agent startx
 
-

+

Quand vous vous loguez à distance, c'est plutôt :

-machine ~ $ exec ssh-agent $SHELL
+machinedist ~ $ exec ssh-agent $SHELL
 

@@ -277,8 +371,6 @@ Enter passphrase: Identity added: /home/toto/.ssh/identity (toto@machine) -

C'est tout !

-

Exécution d'une commande à distance

@@ -289,15 +381,26 @@ machine est en retard, en avance ou

-machine ~ $ ssh clipper.ens.fr date
+machineloc ~ $ ssh clipper.ens.fr date
 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. +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 +un PC, en utilisant la commande uname.

+
+machineloc ~ $ ssh toto@brick.ens.fr "uname -p"
+i386
+
+ +

+La réponse est « i386 », dénomination utilisée pour les PC. +

Message d'erreur

@@ -350,7 +453,7 @@ distante, faites :

-clipper ~ $ scp <mon ou mes fichiers> machine.monlabo.fr:
+machineloc ~ $ scp <mon ou mes fichiers> machinedist:
 

@@ -362,8 +465,8 @@ progression :

-clipper ~ $ scp tagada.txt machine.monlabo.fr:
-toto@machine.monlabo.fr's password: 
+machineloc ~ $ scp tagada.txt machinedist:
+toto@machinedist's password: 
 tagada.txt       100% |***************************************| 2263       00:00    
 
@@ -381,7 +484,7 @@ file

-clipper ~ $ scp -r <répertoire> machine.monlabo.fr:
+machineloc ~ $ scp -r <répertoire> machinedist:
 

@@ -394,7 +497,7 @@ route, renommer tagada.txt en

-clipper ~ $ scp tagada.txt machine.monlabo.fr:coincoin.txt
+machineloc ~ $ scp tagada.txt machinedist:coincoin.txt
 

@@ -404,7 +507,7 @@ Maintenant, nous allons envoyer notre fichier tagada.txt

-clipper ~ $ scp tagada.txt machine.monlabo.fr:divers/blagues
+machineloc ~ $ scp tagada.txt machinedist:divers/blagues
 

De la machine distante à la machine locale

@@ -414,7 +517,7 @@ locale, la m

-clipper ~ $ scp machine.monlabo.fr:tagada.txt .
+machineloc ~ $ scp machinedist:tagada.txt .
 

@@ -425,7 +528,7 @@ r

-clipper ~ $ scp machine.monlabo.fr:tagada.txt divers
+machineloc ~ $ scp machinedist:tagada.txt divers
 

@@ -434,7 +537,7 @@ le transfert machine locale -> machine distante, d

Auteur : Marie-Lan Nguyen. Dernière -modification : le .
+modification : le .