2009-09-20 12:34:28 +02:00
|
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
2003-07-08 11:23:29 +02:00
|
|
|
|
<!DOCTYPE html
|
|
|
|
|
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
|
|
|
|
|
"tuteurs://DTD/tml.dtd">
|
|
|
|
|
<html>
|
|
|
|
|
<head>
|
|
|
|
|
<title>ssh</title>
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<h1>Connexion à distance sécurisée</h1>
|
2003-07-08 11:23:29 +02:00
|
|
|
|
|
2004-01-02 11:34:07 +01:00
|
|
|
|
<div class="attention">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<strong>Mise à jour</strong> : à 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 <a href="#keygen">suivre
|
|
|
|
|
de nouveau la procédure</a>.
|
2004-01-02 11:36:55 +01:00
|
|
|
|
</div>
|
2004-01-02 11:34:07 +01:00
|
|
|
|
|
2003-07-08 11:23:29 +02:00
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Il existe plusieurs protocoles Internet permettant de se connecter à
|
|
|
|
|
un ordinateur distant : <code>telnet</code>, les r-commandes
|
2003-07-08 11:23:29 +02:00
|
|
|
|
(<code>rlogin</code>, <code>rsh</code> ou encore <code>rcp</code>),
|
|
|
|
|
<code>ssh</code> (<i lang="la">Secure Shell</i>). Alors que
|
|
|
|
|
<code>telnet</code> et les r-commandes font circuler les informations
|
2009-09-20 12:27:14 +02:00
|
|
|
|
en clair sur le réseau (voir notre documentation sur les <a
|
2003-09-08 13:33:45 +02:00
|
|
|
|
href="&url.tuteurs;internet/dangers_telnet.html">dangers de
|
2003-07-08 11:23:29 +02:00
|
|
|
|
<code>telnet</code></a>), <code>ssh</code> est beaucoup plus
|
2009-09-20 12:27:14 +02:00
|
|
|
|
sûr :
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li> le client (par exemple, vous) et le serveur (clipper)
|
2009-09-20 12:27:14 +02:00
|
|
|
|
s'authentifient mutuellement, ce qui évite que des pirates se fassent
|
2003-07-08 11:23:29 +02:00
|
|
|
|
passer pour l'un ou pour l'autre</li>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<li> les données échangées sur le réseau par le biais de
|
|
|
|
|
<code>ssh</code> sont chiffrées, ce qui garantit leur confidentialité</li>
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
|
|
|
|
Pour ces deux raisons, nous vous conseillons vivement
|
|
|
|
|
d'<strong>abandonner <code>telnet</code> et
|
|
|
|
|
<code>rlogin</code></strong> pour adopter <code>ssh</code>. Le
|
2009-09-20 12:27:14 +02:00
|
|
|
|
piratage, ça n'existe pas que dans les films. Vous pensez peut-être
|
|
|
|
|
que rien sur votre compte n'intéresse un pirate, et que donc il n'est
|
|
|
|
|
pas utile de prendre vos précautions. Vous avez tort à deux
|
|
|
|
|
titres : le pirate peut se servir de votre compte pour attaquer
|
2003-07-08 11:23:29 +02:00
|
|
|
|
une autre machine... Bonne chance alors pour convaincre la DST que ce
|
2009-09-20 12:27:14 +02:00
|
|
|
|
n'était pas vous. Ensuite, en vous exposant au danger, vous mettez
|
2003-07-08 11:23:29 +02:00
|
|
|
|
ensuite en danger les autres utilisateurs de l'ENS. Alors soyez
|
|
|
|
|
responsables.
|
|
|
|
|
</p>
|
|
|
|
|
|
2003-12-19 11:46:11 +01:00
|
|
|
|
<div class="encadre">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<strong>À savoir</strong> : le protocole SSH n'est <em>pas</em> une
|
|
|
|
|
particularité UNIX. Vous pouvez vous tout aussi bien vous connecter
|
|
|
|
|
par <code>ssh</code> avec Windows ou Mac OS. Reportez-vous à notre
|
2003-12-19 11:46:11 +01:00
|
|
|
|
documentation sur les <a
|
|
|
|
|
href="&url.tuteurs;internet/dangers_telnet.html">dangers de
|
|
|
|
|
Telnet</a>, nous vous y indiquons quels programmes vous pouvez
|
2009-09-20 12:27:14 +02:00
|
|
|
|
utiliser pour faire du <code>ssh</code>. Vous pouvez également
|
2003-07-19 13:03:18 +02:00
|
|
|
|
consulter, sur le site des <a
|
|
|
|
|
href="http://www.eleves.ens.fr/wintuteurs/">WinTuteurs</a>, le <a
|
|
|
|
|
href="http://www.eleves.ens.fr/wintuteurs/tutorials/putty/">tutorial
|
2003-12-19 11:46:11 +01:00
|
|
|
|
sur PuTTY (Windows)</a>.
|
|
|
|
|
</div>
|
2003-07-19 13:03:18 +02:00
|
|
|
|
|
2003-07-08 11:23:29 +02:00
|
|
|
|
<h2>Se connecter</h2>
|
|
|
|
|
|
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
L'utilisation de <code>ssh</code> pour se connecter à une machine est
|
|
|
|
|
extrêmement simple.
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
2003-12-19 11:46:11 +01:00
|
|
|
|
<div class="encadre">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<strong>Définitions</strong> : par <dfn>machine locale</dfn>, on
|
2003-12-19 11:46:11 +01:00
|
|
|
|
entend la machine devant laquelle vous vous trouvez. Dans ce tutorial,
|
|
|
|
|
on l'appelle <code>machineloc</code>. La <dfn>machine distante</dfn>,
|
2009-09-20 12:27:14 +02:00
|
|
|
|
c'est celle à laquelle vous voulez vous connecter. Dans ce tutorial,
|
|
|
|
|
on l'appelle <code>machinedist</code>. Par exemple, si vous êtes dans
|
|
|
|
|
votre thurne et que vous voulez vous connecter à <code>clipper</code>,
|
2003-12-19 11:46:11 +01:00
|
|
|
|
la machine locale est votre propre ordinateur, la machine distante est
|
|
|
|
|
clipper.
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
2003-07-08 11:23:29 +02:00
|
|
|
|
<pre>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<span class="prompt">machineloc ~ $</span> <code>ssh</code> login@machinedist
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
On peut aussi utiliser la syntaxe équivalente :
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
2003-12-19 11:46:11 +01:00
|
|
|
|
<span class="prompt">machineloc ~ $</span> ssh machinedist -l login
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Pour indiquer la machine à distance, vous pouvez utiliser aussi bien
|
2003-12-19 11:46:11 +01:00
|
|
|
|
le nom de la machine (<code>clipper.ens.fr</code>,
|
|
|
|
|
<code>horus.ens.fr</code>, etc.) que son adresse IP (pour clipper,
|
2005-05-04 12:05:56 +02:00
|
|
|
|
<code>129.199.129.1</code>).
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p>Si vous avez le même login sur les deux machines en question, ce
|
|
|
|
|
n'est pas la peine de le mentionner, tapez simplement :
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
2003-12-19 11:46:11 +01:00
|
|
|
|
<span class="prompt">machineloc ~ $</span> ssh machinedist
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Si c'est la première fois que vous vous connectez par <code>ssh</code>
|
|
|
|
|
sur cette machine, vous verrez un message tel que celui-ci :
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<span class="prompt">machineloc ~ $</span> ssh toto@machinedist
|
2003-12-19 11:46:11 +01:00
|
|
|
|
The authenticity of host 'machinedist' (111.222.333.4)' can't be established.
|
2003-07-08 11:23:29 +02:00
|
|
|
|
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)?
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
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. <code>ssh</code> vous dira alors :
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
2003-12-19 11:46:11 +01:00
|
|
|
|
<a name="typeclef">Warning:</a> Permanently added 'machinedist,111.222.333.4' (RSA1) to
|
2003-07-08 11:23:29 +02:00
|
|
|
|
the list of known hosts.
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Ce qui signifie que <code>ssh</code> 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.
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
2005-05-04 12:05:56 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2003-07-08 11:23:29 +02:00
|
|
|
|
<h3>Authentification par mot de passe</h3>
|
|
|
|
|
|
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
La façon la plus simple de s'identifier est le mot de passe. Par
|
|
|
|
|
défaut, <code>ssh</code> vous le réclamera.
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
<span class="clipper">clipper ~ $</span> ssh machine.monlabo.fr
|
|
|
|
|
toto@machine's password:
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
|
|
|
|
Il vous suffit de taper votre mot de passe. Attention, pour des
|
2009-09-20 12:27:14 +02:00
|
|
|
|
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
|
2003-07-08 11:23:29 +02:00
|
|
|
|
erreur dans votre mot de passe, faites <code>Ctrl+u</code> et retapez
|
2009-09-20 12:27:14 +02:00
|
|
|
|
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 « <i lang="en">Permission denied.</i> » et il faudra
|
2003-07-08 11:23:29 +02:00
|
|
|
|
recommencer.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<h3>Authentification par clef publique</h3>
|
|
|
|
|
|
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Une autre méthode utilise ce qu'on appelle une « clef publique »,
|
|
|
|
|
c'est-à-dire un code qui vous identifie. Si vous suivez la procédure
|
|
|
|
|
décrite ci-dessous, vous pourrez vous connecter par <code>ssh</code>
|
|
|
|
|
sur une machine distante sans avoir à taper de mot de passe.
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
2003-12-19 11:46:11 +01:00
|
|
|
|
<h4><a name="type">Type de clef</a></h4>
|
|
|
|
|
|
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
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 <code>ssh</code> sur cette machine (voir <a
|
2003-12-19 11:46:11 +01:00
|
|
|
|
href="#typeclef">ci-dessus</a>). Si vous ne vous en souvenez plus,
|
2009-09-20 12:27:14 +02:00
|
|
|
|
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 <code>ssh -v</code> sur la machine distante.
|
2003-12-19 11:46:11 +01:00
|
|
|
|
</p>
|
|
|
|
|
|
2004-01-02 11:34:07 +01:00
|
|
|
|
<div class="ens">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
À 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.
|
2004-01-02 11:34:07 +01:00
|
|
|
|
</div>
|
2003-12-19 11:46:11 +01:00
|
|
|
|
|
|
|
|
|
<pre>
|
2004-01-02 11:34:07 +01:00
|
|
|
|
<span class="prompt">clipper ~</span> $ ssh -v
|
|
|
|
|
OpenSSH_3.7.1p2, SSH protocols 1.5/2.0, OpenSSL 0.9.7c 30 Sep 2003
|
|
|
|
|
Usage: ssh [options] host [command]
|
|
|
|
|
<...>
|
2003-12-19 11:46:11 +01:00
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Le « SSH protocols 1.5/2.0 » vous indique qu'il s'agit d'un
|
|
|
|
|
<code>ssh</code> récent qui peut faire du SSH1 ou du SSH2.
|
2003-12-19 11:46:11 +01:00
|
|
|
|
</p>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<h4><a name="keygen">Générer la clef</a></h4>
|
2003-07-08 11:23:29 +02:00
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
Pour ce faire, commencez par taper la commande <code>ssh-keygen</code>
|
|
|
|
|
(comme <i lang="en">key generator</i>) <strong>sur la machine
|
2009-09-20 12:27:14 +02:00
|
|
|
|
locale</strong> (et pas sur la machine à distance).
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
2003-12-19 11:46:11 +01:00
|
|
|
|
<span class="prompt">machineloc ~ $</span> ssh-keygen
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Avec un <code>ssh</code> 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) :
|
2003-12-19 11:46:11 +01:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
2004-01-02 11:34:07 +01:00
|
|
|
|
<span class="prompt">machineloc ~ $</span> ssh-keygen -t dsa
|
2003-12-19 11:46:11 +01:00
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
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 <code>$HOME/.ssh/id_dsa</code> pour
|
|
|
|
|
SSH2 et <code>$HOME/.ssh/identity</code> pour SSH1 :
|
2003-12-19 11:46:11 +01:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
2004-01-02 11:34:07 +01:00
|
|
|
|
<span class="prompt">machineloc ~ $</span> ssh-keygen -t dsa
|
|
|
|
|
Generating public/private dsa key pair.
|
|
|
|
|
Enter file in which to save the key (/usr/home/toto/.ssh/id_dsa):
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">Appuyez sur <code>Enter</code> pour accepter la
|
2003-12-19 11:46:11 +01:00
|
|
|
|
localisation de la clef (il est plus simple d'accepter la localisation
|
2009-09-20 12:27:14 +02:00
|
|
|
|
proposée). <code>ssh-keygen</code> vous demande ensuite une « <i
|
|
|
|
|
lang="en">passphrase</i> » (é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 :
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<ul>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<li> si vous tapez une phrase, votre connection sera plus sûre, mais
|
|
|
|
|
vous devrez utiliser <code>ssh-agent</code> pour ne pas avoir à la
|
|
|
|
|
retaper à chaque fois (voir <a href="#ssh-agent">plus bas</a>)</li>
|
2004-01-02 11:34:07 +01:00
|
|
|
|
|
2003-07-08 11:23:29 +02:00
|
|
|
|
<li> vous ne tapez pas de phrase (et appuyez seulement sur
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<code>Enter</code>), votre connexion sera moins sûre</li>
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</ul>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p>Que vous tapiez une phrase ou pas, à la fin vous verrez quelque
|
|
|
|
|
chose comme </p>
|
2003-07-08 11:23:29 +02:00
|
|
|
|
|
|
|
|
|
<pre>
|
2004-01-02 11:34:07 +01:00
|
|
|
|
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.
|
|
|
|
|
The key fingerprint is:
|
|
|
|
|
1a:2a:3e:4a:1a:65:1c:89:10:92:9c:5c:1f:75:cc:de
|
|
|
|
|
toto@machineloc
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<h4>Que faire de la clef</h4>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Si l'on récapitule, <code>ssh-keygen</code> a généré deux
|
|
|
|
|
clefs :</p>
|
2003-07-08 11:23:29 +02:00
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<li> une clef privée (chiffrée si vous avez donné une phrase, non
|
|
|
|
|
chiffrée sinon) qui est <code>$HOME/.ssh/identity</code> (ou
|
2003-12-19 11:46:11 +01:00
|
|
|
|
<code>$HOME/.ssh/id_dsa</code> si c'est du SSH2) et qui n'est
|
2009-09-20 12:27:14 +02:00
|
|
|
|
accessible qu'à vous</li>
|
2003-07-08 11:23:29 +02:00
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<li> une publique (non chiffrée) qui est
|
2004-01-02 11:34:07 +01:00
|
|
|
|
<code>$HOME/.ssh/id_dsa.pub</code> (ou
|
|
|
|
|
<code>$HOME/.ssh/identity.pub</code> si c'est du SSH1) et qui peut
|
2009-09-20 12:27:14 +02:00
|
|
|
|
être lue par tout le monde</li>
|
2003-12-19 11:46:11 +01:00
|
|
|
|
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</ul>
|
|
|
|
|
|
2003-12-19 11:46:11 +01:00
|
|
|
|
<div class="encadre">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<strong>Définition</strong> : qu'est-ce que ce
|
|
|
|
|
« <code>$HOME</code> » ? <dfn>$HOME</dfn> 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
|
|
|
|
|
<code>echo $HOME</code> pour savoir quel est le vôtre. Sur
|
2003-12-19 11:46:11 +01:00
|
|
|
|
<code>clipper</code>, c'est
|
|
|
|
|
<code>/users/promo/matiere/login</code>. Pour en savoir plus, voir
|
2009-09-20 12:27:14 +02:00
|
|
|
|
l'article « <a
|
|
|
|
|
href="&url.tuteurs;docs/hublot/hublot03.html#concept">Concept :
|
|
|
|
|
arborescence</a> » dans le n°3 du <cite>Hublot</cite>.
|
2003-12-19 11:46:11 +01:00
|
|
|
|
</div>
|
|
|
|
|
|
2003-07-08 11:23:29 +02:00
|
|
|
|
<p>
|
|
|
|
|
Maintenant, sur la machine <strong>distante</strong>, allez dans le
|
2009-09-20 12:27:14 +02:00
|
|
|
|
répertoire <code>.ssh</code> et éditez le fichier
|
|
|
|
|
<code>authorized_keys</code> : ajoutez à la fin, et <strong>sur
|
|
|
|
|
une seule ligne</strong> (attention aux éditeurs qui coupent les
|
2003-12-19 11:46:11 +01:00
|
|
|
|
lignes) la clef publique (<code>identity.pub</code> pour SSH1 ou
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<code>id_dsa.pub</code> pour SSH2) que vous venez de générer. Procédez
|
2003-12-19 11:46:11 +01:00
|
|
|
|
ainsi pour toutes les machines distantes auxquelles vous voulez vous
|
2009-09-20 12:27:14 +02:00
|
|
|
|
connecter sans avoir à taper votre mot de passe. Et voilà !
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
2003-12-19 11:46:11 +01:00
|
|
|
|
<h4><a name="ssh-agent">Utiliser <code>ssh-agent</code></a></h4>
|
2003-07-08 11:23:29 +02:00
|
|
|
|
|
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Si vous avez opté pour la solution « phrase de passe », bravo, votre
|
|
|
|
|
connexion est plus sûre. Mais vous devez taper à chaque fois ladite
|
2003-07-08 11:23:29 +02:00
|
|
|
|
phrase... Solution, utiliser <code>ssh-agent</code>.
|
|
|
|
|
</p>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p>D'abord, il faut lancer <code>ssh-agent</code>, qui gère les clefs
|
|
|
|
|
d'identification. Si vous êtes logué dans une salle informatique de
|
|
|
|
|
l'ENS avec la config conscrits, pas de problème,
|
|
|
|
|
<code>ssh-agent</code> est déjà lancé. Si ce n'est pas le cas, il faut
|
|
|
|
|
le lancer vous-même.
|
2003-12-19 11:46:11 +01:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
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 :
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
2003-12-19 11:46:11 +01:00
|
|
|
|
<span class="prompt">machineloc ~ $</span> ssh-agent startx
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</pre>
|
|
|
|
|
|
2003-12-19 11:46:11 +01:00
|
|
|
|
<p class="continue">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Quand vous vous loguez à distance, c'est plutôt :
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
2003-12-19 11:46:11 +01:00
|
|
|
|
<span class="prompt">machinedist ~ $</span> exec ssh-agent $SHELL
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
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 <code>ssh-add</code>. On vous demande
|
|
|
|
|
alors votre phrase de passe :
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
<span class="prompt">machine ~ $</span> ssh-add
|
|
|
|
|
Need passphrase for /home/toto/.ssh/identity (toto@machine)
|
|
|
|
|
Enter passphrase:
|
|
|
|
|
Identity added: /home/toto/.ssh/identity (toto@machine)
|
|
|
|
|
</pre>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<h3>Exécution d'une commande à distance</h3>
|
2003-07-08 11:23:29 +02:00
|
|
|
|
|
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Vous pouvez également utiliser <code>ssh</code> pour exécuter une
|
|
|
|
|
commande à distance. Par exemple, vous voulez, de votre machine
|
|
|
|
|
personnelle, connaître l'heure sur clipper, pour savoir si votre
|
|
|
|
|
machine est en retard, en avance ou à l'heure.
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
2003-12-19 11:46:11 +01:00
|
|
|
|
<span class="prompt">machineloc ~ $</span> ssh clipper.ens.fr date
|
2003-07-08 11:23:29 +02:00
|
|
|
|
Fri Jul 4 12:01:49 MET DST 2003
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
N'oubliez pas de préciser <code>toto@machine</code> si vos logins sont
|
|
|
|
|
différents entre les deux machines. Si vous voulez exécuter à distance
|
2003-12-19 11:46:11 +01:00
|
|
|
|
une commande avec des options, mieux vaut mettre des guillemets. Par
|
|
|
|
|
exemple, je veux savoir si <code>brick</code> est une station Sun ou
|
|
|
|
|
un PC, en utilisant la commande <code>uname</code>.
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
2003-12-19 11:46:11 +01:00
|
|
|
|
<pre>
|
|
|
|
|
<span class="prompt">machineloc ~ $</span> ssh toto@brick.ens.fr "uname -p"
|
|
|
|
|
i386
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
La réponse est « i386 », dénomination utilisée pour les PC.
|
2003-12-19 11:46:11 +01:00
|
|
|
|
</p>
|
2003-07-08 11:23:29 +02:00
|
|
|
|
|
|
|
|
|
<h3>Message d'erreur</h3>
|
|
|
|
|
|
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Il est possible que vous voyiez un jour le message d'erreur suivant :
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
|
|
|
@ WARNING: HOST IDENTIFICATION HAS CHANGED! @
|
|
|
|
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
|
|
|
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
|
|
|
|
|
Someone could be eavesdropping on you right now (man-in-the-middle
|
|
|
|
|
attack)!
|
|
|
|
|
It is also possible that the host key has just been changed.
|
|
|
|
|
Please contact your system administrator.
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
|
|
|
|
Ce message signifie que la clef ssh (l'identification) de la machine
|
2009-09-20 12:27:14 +02:00
|
|
|
|
distante a changé. En effet, à chaque fois que vous vous connectez à
|
|
|
|
|
une machine par <code>ssh</code>, celle-ci présente à votre machine
|
|
|
|
|
une sorte de carte d'identité, ainsi vous êtes sûr qu'il s'agit bien
|
2003-07-08 11:23:29 +02:00
|
|
|
|
de la bonne machine et pas d'un pirate. Ou bien la machine a
|
2009-09-20 12:27:14 +02:00
|
|
|
|
réellement changé de clef ssh (à l'ENS, cela arrive de temps à autres
|
2003-07-08 11:23:29 +02:00
|
|
|
|
quand le SPI upgrade une machine), ou bien c'est une attaque de
|
2009-09-20 12:27:14 +02:00
|
|
|
|
pirate. Il vaut mieux écrire au SPI pour savoir ce qu'il en est.
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<h2>Transférer des fichiers</h2>
|
2003-07-08 11:23:29 +02:00
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p>Il y a d'autres commandes associées à <code>ssh</code> qui vous
|
|
|
|
|
permettent, de manière tout aussi sûre, de transférer des fichiers
|
|
|
|
|
d'une machine à une autre. En l'espèce, <code>scp</code> (<i
|
2003-07-19 13:03:18 +02:00
|
|
|
|
lang="en">Secure Copy</i>) a un fonctionnement aussi simple que celui
|
|
|
|
|
de <code>ssh</code>.</p>
|
|
|
|
|
|
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Les explications qui suivent sous pour les sytèmes UNIX. Pour savoir
|
2003-07-19 13:03:18 +02:00
|
|
|
|
comment faire sous Windows, reportez-vous au tutorial des <a
|
2003-07-10 20:06:56 +02:00
|
|
|
|
href="http://www.eleves.ens.fr/wintuteurs/">WinTuteurs</a> sur <a
|
2003-07-19 13:03:18 +02:00
|
|
|
|
href="http://www.eleves.ens.fr/wintuteurs/tutorials/transfiles/">WinSCP</a>.
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<h3>De la machine locale à la machine distante</h3>
|
2003-07-08 11:23:29 +02:00
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p>Pour envoyer des fichiers de votre machine locale à la machine
|
|
|
|
|
distante, faites :
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
2005-07-05 09:17:03 +02:00
|
|
|
|
<span class="prompt">machineloc ~ $</span> scp fichier1 fichier2 fichier3 machinedist:
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Attention, <em>n'oubliez pas les deux points à la fin</em>. Vous
|
2003-07-08 11:23:29 +02:00
|
|
|
|
devrez taper votre mot de passe (sauf si vous utilisez
|
|
|
|
|
l'authentification par clef publique, voir ci-dessus), puis
|
|
|
|
|
<code>ssh</code> se lancera dans le transfert en vous indiquant sa
|
2009-09-20 12:27:14 +02:00
|
|
|
|
progression :
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
2003-12-19 11:46:11 +01:00
|
|
|
|
<span class="prompt">machineloc ~ $</span> scp tagada.txt machinedist:
|
|
|
|
|
toto@machinedist's password:
|
2003-07-08 11:23:29 +02:00
|
|
|
|
tagada.txt 100% |***************************************| 2263 00:00
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Pour énumérer les fichiers à copier, mettez-les simplement à la suite,
|
|
|
|
|
séparés par une espace, sans virgule.
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p>Pour transférer un <strong>répertoire</strong> entier, il faut
|
2003-07-08 11:23:29 +02:00
|
|
|
|
utiliser l'option <code>-r</code> (comme <i lang="en">recursive</i>),
|
2009-09-20 12:27:14 +02:00
|
|
|
|
sinon ssh vous dira « répertoire: <i lang="en">not a regular
|
|
|
|
|
file</i> ».
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<span class="prompt">machineloc ~ $</span> scp -r répertoire machinedist:
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Dans ces premiers exemples, le(s) fichier(s) sera ou seront copié(s),
|
|
|
|
|
avec le <em>même nom</em> sur la machine distante, à la racine de
|
2003-07-08 11:23:29 +02:00
|
|
|
|
votre compte. Nous allons compliquer progressivement les
|
|
|
|
|
choses. Maintenant, vous voulez changer le nom du fichier en cours de
|
|
|
|
|
route, renommer <code>tagada.txt</code> en
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<code>coincoin.txt</code> :
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
2003-12-19 11:46:11 +01:00
|
|
|
|
<span class="prompt">machineloc ~ $</span> scp tagada.txt machinedist:coincoin.txt
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
|
|
|
|
Maintenant, nous allons envoyer notre fichier <code>tagada.txt</code>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
à un endroit précis sur le compte distant, dans le répertoire
|
|
|
|
|
<code>$HOME/divers/blagues</code> :
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
2003-12-19 11:46:11 +01:00
|
|
|
|
<span class="prompt">machineloc ~ $</span> scp tagada.txt machinedist:divers/blagues
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</pre>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<h3>De la machine distante à la machine locale</h3>
|
2003-07-08 11:23:29 +02:00
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p>Pour rapatrier des fichiers de la machine distante à votre machine
|
|
|
|
|
locale, la même syntaxe est utilisée, mais inversée :
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
2003-12-19 11:46:11 +01:00
|
|
|
|
<span class="prompt">machineloc ~ $</span> scp machinedist:tagada.txt .
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Le . (point) à la fin signifie que <code>scp</code> devra mettre le
|
|
|
|
|
fichier <em>ici</em>, dans le répertoire dans lequel vous vous trouvez
|
|
|
|
|
actuellement. Évidemment, vous pouvez lui indiquer un autre
|
|
|
|
|
répertoire :
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
2003-12-19 11:46:11 +01:00
|
|
|
|
<span class="prompt">machineloc ~ $</span> scp machinedist:tagada.txt divers
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Et ainsi de suite, vous pouvez appliquez les mêmes techniques que pour
|
|
|
|
|
le transfert machine locale -> machine distante, décrites ci-dessus.
|
2003-07-08 11:23:29 +02:00
|
|
|
|
</p>
|
2003-09-08 15:09:29 +02:00
|
|
|
|
|
2007-09-02 13:58:44 +02:00
|
|
|
|
<h3>Sous KDE</h3>
|
|
|
|
|
|
|
|
|
|
<p> Sous KDE (par exemple dans la <a
|
2007-09-02 14:16:44 +02:00
|
|
|
|
href="&url.tuteurs;unix/config/">config conscrits</a> 2006 et plus),
|
2009-09-20 12:27:14 +02:00
|
|
|
|
il est possible d'accéder par ssh aux fichiers situés sur une machine
|
2007-09-02 13:58:44 +02:00
|
|
|
|
distante avec le gestionnaire de fichiers Konqueror. Pour ce faire,
|
|
|
|
|
tapez simplement dans la barre d'adresses de Konqueror : </p>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<pre>sftp://login@machinedist/répertoire/</pre>
|
2007-09-02 13:58:44 +02:00
|
|
|
|
|
|
|
|
|
<p class="continue">par exemple</p>
|
|
|
|
|
|
|
|
|
|
<pre>sftp://conscrit@clipper.ens.fr/users/06/maths/conscrit/</pre>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p class="continue">Une boîte de dialogue apparaît si nécessaire pour
|
2007-09-02 14:16:44 +02:00
|
|
|
|
vous demander votre mot de passe. Vous pouvez ensuite copier,
|
2009-09-20 12:27:14 +02:00
|
|
|
|
déplacer, modifier les fichiers existants (et en ajouter) presque
|
|
|
|
|
comme s'ils étaient sur la machine locale.</p>
|
2007-09-02 13:58:44 +02:00
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p>La même astuce marche depuis n'importe quelle boîte de dialogue de
|
2007-09-02 13:58:44 +02:00
|
|
|
|
gestion de fichiers de KDE, par exemple celles auxquelles font appel
|
|
|
|
|
les fonctions Ouvrir et Enregistrer des divers logiciels. </p>
|
2005-05-04 12:05:56 +02:00
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<h2>Créer des alias</h2>
|
2005-05-04 12:05:56 +02:00
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p> Quand on utilise beaucoup la connexion distante, il devient très
|
|
|
|
|
vite fastidieux d'avoir toujours à taper en entier le nom
|
2005-05-04 12:05:56 +02:00
|
|
|
|
<code>clipper.ens.fr</code>, <em>a fortiori</em> son adresse IP
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<code>129.199.129.1</code>. S'il n'y a pas d'ambiguïté (en l'occurrence,
|
2005-05-04 12:05:56 +02:00
|
|
|
|
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
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<strong>assigner un alias à une adresse</strong>. Pour ce faire, mettez
|
2005-05-04 12:05:56 +02:00
|
|
|
|
dans le fichier <code>$HOME/.ssh/config</code> les lignes
|
2009-09-20 12:27:14 +02:00
|
|
|
|
suivantes : </p>
|
2005-05-04 12:05:56 +02:00
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
Host clipper
|
|
|
|
|
User toto
|
|
|
|
|
HostName clipper.ens.fr
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
(n'oubliez pas de remplacer « toto » par votre nom d'utilisateur).
|
2005-05-04 12:05:56 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Ainsi, il suffira de taper :
|
2005-05-04 12:05:56 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
<span class="prompt">machineloc ~ $</span> ssh clipper
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
au lieu de :
|
2005-05-04 12:05:56 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
<span class="prompt">machineloc ~ $</span> ssh toto@clipper.ens.fr
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Cette modification s'étend également à <code>scp</code>. Il vous suffit
|
|
|
|
|
en effet de taper :
|
2005-05-04 12:05:56 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
<span class="prompt">machineloc ~ $</span> scp tagada.txt clipper:divers/blagues
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
au lieu de :
|
2005-05-04 12:05:56 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
<span class="prompt">machineloc ~ $</span> scp tagada.txt toto@clipper.ens.fr:divers/blagues
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
|
2009-09-27 22:00:55 +02:00
|
|
|
|
<div class="metainformation">Auteur : Marie-Lan Nguyen, Marc Mezzarobba. <date value="from git" /></div>
|
2003-07-08 11:23:29 +02:00
|
|
|
|
|
|
|
|
|
</body>
|
2003-09-25 10:49:28 +02:00
|
|
|
|
</html>
|