652 lines
24 KiB
XML
652 lines
24 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<!DOCTYPE html
|
||
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
|
||
"tuteurs://DTD/tml.dtd">
|
||
<html>
|
||
<head>
|
||
<title>ssh</title>
|
||
</head>
|
||
<body>
|
||
|
||
<h1>Connexion à distance sécurisée</h1>
|
||
|
||
<p>
|
||
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.
|
||
</p>
|
||
<div class="encadre">
|
||
<strong>À savoir</strong> : le protocole SSH n'est <em>pas</em> une
|
||
particularité UNIX. Vous pouvez par exemple 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
|
||
sur PuTTY (Windows)</a>.
|
||
</div>
|
||
<div class="encadre">
|
||
<strong>Note</strong> : 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.
|
||
</div>
|
||
|
||
<div class="encadre">
|
||
<strong>Note</strong> : Sur cette page, la machine <code>trolle.ens.fr</code> 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 <code>sas.eleves.ens.fr</code> qui remplace l'ancien accès à <code>clipper</code> 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.
|
||
</div>
|
||
|
||
<h2>Se connecter</h2>
|
||
|
||
<p>
|
||
L'utilisation de <code>ssh</code> pour se connecter à une machine est
|
||
extrêmement simple.
|
||
</p>
|
||
|
||
<div class="encadre">
|
||
<strong>Définitions</strong> : par <dfn>machine locale</dfn>, on
|
||
entend la machine devant laquelle vous vous trouvez. Dans ce tutorial,
|
||
on l'appelle <code>machineloc</code>. La <dfn>machine distante</dfn>,
|
||
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 à une machine de l'ENS (<code>trolle.ens.fr</code>),
|
||
la machine locale est votre propre ordinateur, la machine distante est
|
||
<code>trolle.ens.fr</code>.
|
||
</div>
|
||
|
||
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> <code>ssh</code> login@machinedist
|
||
</pre>
|
||
|
||
<p class="continue">
|
||
On peut aussi utiliser la syntaxe équivalente :
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> ssh machinedist -l login
|
||
</pre>
|
||
|
||
<p class="continue">
|
||
Pour indiquer la machine à distance, vous pouvez utiliser aussi bien
|
||
le nom de la machine (<code>sas.eleves.ens.fr</code>, <code>trolle.ens.fr</code>,
|
||
<code>horus.ens.fr</code>, etc.) que son adresse IP (pour <code>trolle.ens.fr</code>,
|
||
<code>129.199.129.38</code>).
|
||
</p>
|
||
|
||
<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 :
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> ssh machinedist
|
||
</pre>
|
||
|
||
<p>
|
||
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 :
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> 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)?
|
||
</pre>
|
||
|
||
<p class="continue">
|
||
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 (si vous êtes sûr de votre connexion). <code>ssh</code> vous dira alors :
|
||
</p>
|
||
|
||
<pre>
|
||
<a name="typeclef">Warning:</a> Permanently added 'machinedist,111.222.333.4' (RSA1) to
|
||
the list of known hosts.
|
||
</pre>
|
||
|
||
<p class="continue">
|
||
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 clé utilisée par la machine distante. Cette information peut
|
||
vous servir par la suite pour générer une clé.
|
||
</p>
|
||
|
||
|
||
|
||
|
||
<h3>Authentification par mot de passe</h3>
|
||
|
||
<p>
|
||
La façon la plus simple de s'identifier est le mot de passe. Par
|
||
défaut, <code>ssh</code> vous le réclamera.
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="clipper">trolle.ens.fr ~ $</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
|
||
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 <code>Ctrl+u</code> 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 « <i lang="en">Permission denied.</i> » et il faudra
|
||
recommencer.
|
||
</p>
|
||
|
||
<h3>Authentification par clé publique</h3>
|
||
|
||
<p>
|
||
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 <code>ssh</code>
|
||
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.
|
||
</p>
|
||
|
||
<h4><a name="type">Type de clé</a></h4>
|
||
|
||
<p>
|
||
Il existe différentes versions de SSH. Suivant le type de version
|
||
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 <code>ssh</code> sur cette machine (voir <a
|
||
href="#typeclef">ci-dessus</a>). Si vous ne vous en souvenez plus,
|
||
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 <code>ssh -v</code> sur la machine distante.
|
||
</p>
|
||
|
||
<div class="ens">
|
||
À l'ENS, depuis décembre 2003, les 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 clé, de type
|
||
RSA (chiffrement recommandé), et de suivre de nouveau la procédure ci-dessous.
|
||
</div>
|
||
|
||
<pre>
|
||
<span class="prompt">trolle.ens.fr ~</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]
|
||
<...>
|
||
</pre>
|
||
|
||
<p class="continue">
|
||
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.
|
||
</p>
|
||
|
||
<h4><a name="keygen">Générer la clé</a></h4>
|
||
|
||
<p>
|
||
Pour ce faire, commencez par taper la commande <code>ssh-keygen</code>
|
||
(comme <i lang="en">key generator</i>) <strong>sur la machine
|
||
locale</strong> (et pas sur la machine distante).
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> ssh-keygen
|
||
</pre>
|
||
|
||
<p>
|
||
Avec un <code>ssh</code> récent, qui peut faire du SSH1 ou du SSH2, il
|
||
faut indiquer le type de clé à générer (voir ci-dessus). Par exemple,
|
||
pour générer une clé RSA (recommandé) :
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> ssh-keygen -t rsa
|
||
</pre>
|
||
|
||
<p>Pour générer une clé de type DSA, il suffit d'utiliser la commande suivant à la place :</p>
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> ssh-keygen -t dsa
|
||
</pre>
|
||
|
||
<p>Notez également qu'il est possible de spécifier la taille de la clé (en bits) avec le paramètre <code>-b X</code> où X est un nombre de bits à choisir parmi (par exemple) 1024, 2048 (minimum recommandé), 4096.</p>
|
||
|
||
<p class="continue">
|
||
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 <code>$HOME/.ssh/id_rsa</code> pour
|
||
SSH2 et une clé chiffrée en RSA et <code>$HOME/.ssh/identity</code> pour SSH1 :
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> ssh-keygen -t rsa
|
||
Generating public/private rsa key pair.
|
||
Enter file in which to save the key (/usr/home/toto/.ssh/id_rsa):
|
||
</pre>
|
||
|
||
<p class="continue">Appuyez sur <code>Enter</code> pour accepter la
|
||
localisation de la clé (il est plus simple d'accepter la localisation
|
||
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 clé pour la rendre
|
||
plus difficilement cassable. À partir de là, deux solutions :
|
||
</p>
|
||
|
||
<ul>
|
||
<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>). Si votre clé privée est récupérée, elle ne peut pas être utilisée sans la passphrase associée.</li>
|
||
|
||
<li> vous ne tapez pas de phrase (et appuyez seulement sur
|
||
<code>Enter</code>), votre connexion sera moins sûre. N'importe qui ayant accès à votre clé privée pourra se connecter en s'identifiant à votre place.</li>
|
||
</ul>
|
||
|
||
<p>Que vous tapiez une phrase ou pas, à la fin vous verrez quelque
|
||
chose comme </p>
|
||
|
||
<pre>
|
||
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
|
||
</pre>
|
||
|
||
<h4>Que faire de la clé ?</h4>
|
||
|
||
<p class="continue">
|
||
Si l'on récapitule, <code>ssh-keygen</code> a généré deux
|
||
clés :</p>
|
||
|
||
<ul>
|
||
|
||
<li> une clé privée (chiffrée si vous avez donné une phrase, non
|
||
chiffrée sinon) qui est <code>$HOME/.ssh/identity</code> (ou
|
||
<code>$HOME/.ssh/id_rsa</code> si c'est du SSH2) et qui n'est
|
||
accessible qu'à vous.</li>
|
||
|
||
<li> une clé publique (non chiffrée) qui est
|
||
<code>$HOME/.ssh/id_rsa.pub</code> (ou
|
||
<code>$HOME/.ssh/identity.pub</code> si c'est du SSH1) et qui peut
|
||
être lue par tout le monde.</li>
|
||
|
||
</ul>
|
||
|
||
<div class="encadre">
|
||
<strong>Définition</strong> : qu'est-ce que ce
|
||
« <code>$HOME</code> » ? <dfn>$HOME</dfn> (ou <code>~</code>) 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> 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
|
||
<code>/users/promo/matiere/login</code>. Pour en savoir plus, voir
|
||
l'article « <a
|
||
href="&url.tuteurs;docs/hublot/hublot03.html#concept">Concept :
|
||
arborescence</a> » dans le n°3 du <cite>Hublot</cite>.<br/>
|
||
</div>
|
||
|
||
<p>
|
||
Maintenant, sur la machine <strong>distante</strong>, allez dans le
|
||
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
|
||
lignes) la clé publique (<code>identity.pub</code> pour SSH1 ou
|
||
<code>id_rsa.pub</code> 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à !
|
||
</p>
|
||
|
||
<h4><a name="ssh-agent">Utiliser <code>ssh-agent</code></a></h4>
|
||
|
||
<p>
|
||
Si vous avez opté pour la solution « phrase de passe », bravo, votre
|
||
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 <code>ssh-agent</code>.
|
||
</p>
|
||
|
||
<p>D'abord, il faut lancer <code>ssh-agent</code>, 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,
|
||
<code>ssh-agent</code> est déjà lancé. Si ce n'est pas le cas, il faut
|
||
le lancer vous-même.
|
||
</p>
|
||
|
||
<p>
|
||
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 :
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> ssh-agent startx
|
||
</pre>
|
||
|
||
<p class="continue">
|
||
Quand vous vous loguez à distance, c'est plutôt :
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machinedist ~ $</span> exec ssh-agent $SHELL
|
||
</pre>
|
||
|
||
<p>
|
||
Une fois lancé, l'agent vous suit dans toutes vos connexions à
|
||
distance, et ainsi il est disponible partout. Il faut donner à l'agent
|
||
votre clé à gérer en tapant <code>ssh-add</code>. On vous demande
|
||
alors votre phrase de passe :
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machine ~ $</span> ssh-add
|
||
Need passphrase for /home/toto/.ssh/id_rsa (toto@machine)
|
||
Enter passphrase:
|
||
Identity added: /home/toto/.ssh/id_rsa (toto@machine)
|
||
</pre>
|
||
|
||
<p><em>Note</em> : Les dernières versions des environnements de bureau sous Linux possèdent leur propre interface graphique qui sert de surcouche à <code>ssh-agent</code>. Par exemple, <code>seahorse</code> (ou Trousseau de clé Gnome) tient ce rôle dans Gnome. L'utilisation de <code>ssh-agent</code> peut alors être facilitée, notamment car ces logiciels déverrouillent les clés SSH avec le mot de passe de login directement.</p>
|
||
|
||
<h3>Exécution d'une commande à distance</h3>
|
||
|
||
<p>
|
||
Vous pouvez également utiliser <code>ssh</code> pour exécuter une
|
||
commande à distance. Par exemple, si vous voulez, de votre machine
|
||
personnelle, connaître l'heure sur <code>trolle.ens.fr</code>, pour savoir si votre
|
||
machine est en retard, en avance ou à l'heure.
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> ssh trolle.ens.fr date
|
||
Fri Jul 4 12:01:49 MET DST 2003
|
||
</pre>
|
||
|
||
<p class="continue">
|
||
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
|
||
une commande avec des options, mieux vaut mettre des guillemets. Par
|
||
exemple, je peux savoir si <code>brick</code> est une station Sun ou
|
||
un PC, en utilisant la commande <code>uname</code>.
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> ssh toto@brick.ens.fr "uname -p"
|
||
i386
|
||
</pre>
|
||
|
||
<p class="continue">
|
||
La réponse est « i386 », dénomination utilisée pour les PC.
|
||
</p>
|
||
|
||
<p><em>Petite astuce pour <a href="&url.tuteurs;internet/irc.html">IRC</a></em> : 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é) :</p>
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> ssh login@trolle.ens.fr -t irc
|
||
</pre>
|
||
|
||
<h3>Message d'erreur</h3>
|
||
|
||
<p>
|
||
Il est possible que vous voyiez un jour le message d'erreur suivant :
|
||
</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 clé ssh (l'identification) de la machine
|
||
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
|
||
de la bonne machine et pas d'un pirate. Ou bien la machine a
|
||
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.
|
||
</p>
|
||
|
||
|
||
<h2>Transférer des fichiers</h2>
|
||
|
||
<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
|
||
lang="en">Secure Copy</i>) a un fonctionnement aussi simple que celui
|
||
de <code>ssh</code>.</p>
|
||
|
||
<p>
|
||
Les explications qui suivent sous pour les sytèmes UNIX. Pour savoir
|
||
comment faire sous Windows, reportez-vous au tutorial des <a
|
||
href="http://www.eleves.ens.fr/wintuteurs/">WinTuteurs</a> sur <a
|
||
href="http://www.eleves.ens.fr/wintuteurs/tutorials/transfiles/">WinSCP</a>.
|
||
</p>
|
||
|
||
<h3>De la machine locale à la machine distante</h3>
|
||
|
||
<p>Pour envoyer des fichiers de votre machine locale à la machine
|
||
distante, faites :
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> scp fichier1 fichier2 fichier3 machinedist:
|
||
</pre>
|
||
|
||
<p class="continue">
|
||
Attention, <em>n'oubliez pas les deux points à la fin</em>. Vous
|
||
devrez taper votre mot de passe (sauf si vous utilisez
|
||
l'authentification par clé publique, voir ci-dessus), puis
|
||
<code>ssh</code> se lancera dans le transfert en vous indiquant sa
|
||
progression :
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> scp tagada.txt machinedist:
|
||
toto@machinedist's password:
|
||
tagada.txt 100% |***************************************| 2263 00:00
|
||
</pre>
|
||
|
||
|
||
<p class="continue">
|
||
Pour énumérer les fichiers à copier, mettez-les simplement à la suite,
|
||
séparés par une espace, sans virgule.
|
||
</p>
|
||
|
||
|
||
<p>Pour transférer un <strong>répertoire</strong> entier, il faut
|
||
utiliser l'option <code>-r</code> (comme <i lang="en">recursive</i>),
|
||
sinon ssh vous dira « répertoire: <i lang="en">not a regular
|
||
file</i> ».
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> scp -r répertoire machinedist:
|
||
</pre>
|
||
|
||
<p class="continue">
|
||
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
|
||
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
|
||
<code>coincoin.txt</code> :
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> scp tagada.txt machinedist:coincoin.txt
|
||
</pre>
|
||
|
||
<p class="continue">
|
||
Maintenant, nous allons envoyer notre fichier <code>tagada.txt</code>
|
||
à un endroit précis sur le compte distant, dans le répertoire
|
||
<code>$HOME/divers/blagues</code> :
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> scp tagada.txt machinedist:divers/blagues
|
||
</pre>
|
||
|
||
<p class="continue">
|
||
Et même vers n'importe quel répertoire (<code>/bidule</code> par exemple où / est la racine de la machine) :
|
||
</p>
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> scp tagada.txt machinedist:/bidule
|
||
</pre>
|
||
|
||
<h3>De la machine distante à la machine locale</h3>
|
||
|
||
<p>Pour rapatrier des fichiers de la machine distante à votre machine
|
||
locale, la même syntaxe est utilisée, mais inversée :
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> scp machinedist:tagada.txt .
|
||
</pre>
|
||
|
||
<p class="continue">
|
||
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 :
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> scp machinedist:tagada.txt divers
|
||
</pre>
|
||
|
||
<p class="continue">
|
||
Et ainsi de suite, vous pouvez appliquez les mêmes techniques que pour
|
||
le transfert machine locale -> machine distante, décrites ci-dessus.
|
||
</p>
|
||
|
||
<h3>Sous KDE</h3>
|
||
|
||
<p> Sous KDE (par exemple dans la <a
|
||
href="&url.tuteurs;unix/config/">config conscrits</a> 2006 et plus),
|
||
il est possible d'accéder par ssh aux fichiers situés sur une machine
|
||
distante avec le gestionnaire de fichiers Konqueror. Pour ce faire,
|
||
tapez simplement dans la barre d'adresses de Konqueror : </p>
|
||
|
||
<pre>sftp://login@machinedist/répertoire/</pre>
|
||
|
||
<p class="continue">par exemple</p>
|
||
|
||
<pre>sftp://conscrit@trolle.ens.fr/users/06/maths/conscrit/</pre>
|
||
|
||
<p class="continue">Une boîte de dialogue apparaît si nécessaire pour
|
||
vous demander votre mot de passe. Vous pouvez ensuite copier,
|
||
déplacer, modifier les fichiers existants (et en ajouter) presque
|
||
comme s'ils étaient sur la machine locale.</p>
|
||
|
||
<p>La même astuce marche depuis n'importe quelle boîte de dialogue de
|
||
gestion de fichiers de KDE, par exemple celles auxquelles font appel
|
||
les fonctions Ouvrir et Enregistrer des divers logiciels. </p>
|
||
|
||
<h3>Sous Gnome</h3>
|
||
|
||
<p>La même chose est possible sous Gnome, en passant par le menu "Connexion à un serveur" du gestionnaire de fichiers Nautilus.</p>
|
||
|
||
<h2>Créer des alias</h2>
|
||
|
||
<p> Quand on utilise beaucoup la connexion distante, il devient très
|
||
vite fastidieux d'avoir toujours à taper en entier le nom
|
||
<code>trolle.ens.fr</code>, <em>a fortiori</em> son adresse IP
|
||
<code>129.199.129.38</code>. 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
|
||
<strong>assigner un alias à une adresse</strong>. Pour ce faire, mettez
|
||
dans le fichier <code>$HOME/.ssh/config</code> les lignes
|
||
suivantes : </p>
|
||
|
||
<pre>
|
||
Host trolle
|
||
User toto
|
||
HostName trolle.ens.fr
|
||
</pre>
|
||
|
||
<p class="continue">
|
||
(n'oubliez pas de remplacer « toto » par votre nom d'utilisateur).
|
||
</p>
|
||
|
||
<p>
|
||
Ainsi, il suffira de taper :
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> ssh trolle
|
||
</pre>
|
||
|
||
<p class="continue">
|
||
au lieu de :
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> ssh toto@trolle.ens.fr
|
||
</pre>
|
||
|
||
<p>
|
||
Cette modification s'étend également à <code>scp</code>. Il vous suffit
|
||
en effet de taper :
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> scp tagada.txt trolle:divers/blagues
|
||
</pre>
|
||
|
||
<p class="continue">
|
||
au lieu de :
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">machineloc ~ $</span> scp tagada.txt toto@trolle.ens.fr:divers/blagues
|
||
</pre>
|
||
|
||
|
||
<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 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, 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 (trolle.ens.fr)
|
||
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, Lucas Verney. <date value="from git" /></div>
|
||
|
||
</body>
|
||
</html>
|
||
|