From 203aadaa787a5d0bd76053c90685ed3a6ed51ee7 Mon Sep 17 00:00:00 2001
From: mlnguyen
-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
+
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).
+
-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.
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.
+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.
+
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 :
ssh-agent
pour ne pas avoir à la
-retaper à chaque fois (voir plus bas)Enter
), votre connexion sera moins sûreQue 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
$HOME/.ssh/identity
et qui n'est
+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/identity.pub
et qui peut être lue par tout le
-monde$HOME/.ssh/identity.pub
(ou
+$HOME/.ssh/id_dsa.pub
si c'est du SSH2) et qui peut être
+lue par tout le monde
+
$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à !
ssh-agent
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 !
-@@ -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. +
-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
-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
+modification : le