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
<p>
2012-02-18 02:18:00 +01:00
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.
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>À savoir</strong> : le protocole SSH n'est <em>pas</em> une
2012-02-18 02:18:00 +01:00
particularité UNIX. Vous pouvez par exemple consulter, sur le site des <a
2003-07-19 13:03:18 +02:00
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>
2012-02-18 02:18:00 +01:00
<h2>Informations périmées</h2>
<div class="attention">
<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>.
</div>
<p>
Il existe plusieurs protocoles Internet permettant de se connecter à
un ordinateur distant : <code>telnet</code>, les r-commandes
(<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
en clair sur le réseau (voir notre documentation sur les <a
href="&url.tuteurs;internet/dangers_telnet.html">dangers de
<code>telnet</code></a>), <code>ssh</code> est beaucoup plus
sûr :
</p>
<ul>
<li> le client (par exemple, vous) et le serveur (clipper)
s'authentifient mutuellement, ce qui évite que des pirates se fassent
passer pour l'un ou pour l'autre</li>
<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>
</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
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
une autre machine... Bonne chance alors pour convaincre la DST que ce
n'était pas vous. Ensuite, en vous exposant au danger, vous mettez
ensuite en danger les autres utilisateurs de l'ENS. Alors soyez
responsables.
</p>
<div class="metainformation">Auteur : Marie-Lan Nguyen, Marc Mezzarobba, Antoine Amarilli. <date value="from git" /></div>
2003-07-08 11:23:29 +02:00
</body>
2003-09-25 10:49:28 +02:00
</html>
2012-02-18 02:18:00 +01:00