feat: Move everything to www subdirectory
234
www/internet/loin/ftp.tml
Normal file
|
@ -0,0 +1,234 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
|
||||
"tuteurs://DTD/tml.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>FTP</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>FTP : transférer des fichiers</h1>
|
||||
|
||||
<h2><a name="intro">Introduction</a></h2>
|
||||
|
||||
<p>
|
||||
Le FTP (pour <em>File Transfer Protocol</em>, protocole de transfert de
|
||||
fichiers) est un service Internet utilisé pour transférer des fichiers d'une
|
||||
machine vers une autre. <code>FTP</code> a deux usages :
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><strong>Envoyer des fichiers</strong> (<em>upload</em>) : on peut
|
||||
transférer des fichiers d'un compte d'un machine vers un compte d'une autre
|
||||
machine. Cela fonctionne de façon très voisine d'une connexion à distance
|
||||
depuis une machine sur une autre. En particulier, il faut avoir un compte et
|
||||
un mot de passe sur la machine distante (ce n'est pas nécessaire sur la
|
||||
machine locale si celle-ci est un Mac ou un PC sous Windows).
|
||||
</li>
|
||||
<li><strong>Récupérer des fichiers</strong> (<em>download</em>) : on
|
||||
peut récuperer sur Internet des fichiers utiles pour sa machine. Par exemple,
|
||||
beaucoup de distributions Linux sont disponibles directement et gratuitement
|
||||
par FTP. De nombreux utilitaires, jeux, programmes corrigeant des erreurs sont
|
||||
aussi disponibles de façon libre par FTP. On parle pour cet usage de «FTP
|
||||
anonyme», car l'utilisateur n'a pas de compte sur la machine distante, mais
|
||||
utilise un compte public.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Les programmes <code>ftp</code> et <code>ncftp</code> sur les machines Unix
|
||||
sont adaptés à ces deux usages. On parlera ici de <code>ncftp</code> car
|
||||
c'est le plus pratique. D'autres logiciels existent, sous Unix, DOS ou
|
||||
Macintosh. Certains, comme Netscape, ne sont réellement adaptés qu'au FTP
|
||||
anonyme.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
&icone.note;
|
||||
Concrètement, le nom de login d'une connexion FTP anonyme est <code>ftp</code>
|
||||
ou <code>anonymous</code>. La plupart des serveurs FTP anonymes demandent si on
|
||||
rentre ces logins l'adresse de courriers électroniques de l'utilisateur en mot
|
||||
de passe. La connexion n'est donc pas à proprement parler « anonyme ».
|
||||
</p>
|
||||
|
||||
<h2><a name="nonanonyme">Le FTP non anonyme</a></h2>
|
||||
|
||||
<p>
|
||||
<code>ncftp</code> suppose par défaut que vous cherchez à vous connecter d'une
|
||||
façon anonyme à la machine distante. Il faut lui préciser le contraire en lui
|
||||
indiquant le <em>login</em> de la connexion. Pour cela, tapez dans un
|
||||
<a href="&url.jargon;#xterm">terminal</a> :
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
ncftp -u <em>login</em> <em>nom-de-la-machine</em>
|
||||
</pre>
|
||||
|
||||
<p class="continue">
|
||||
en remplaçant <code>login</code> par votre login sur la machine distante,
|
||||
et <code>nom-de-la-machine</code> par le nom de cette machine. Par exemple, Toto
|
||||
veut se connecter à Jourdan pour récupérer des fichiers; il tape :
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
ncftp -u toto vedette.ens.fr
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
<code>ncftp</code> vous demandera alors votre mot de passe sur la machine
|
||||
distante. Une fois ceci effectué, vous êtes connecté à la machine distante (si
|
||||
votre mot de passe était correct). L'invite ressemble alors à celle d'un
|
||||
<a href="&url.jargon;#shell">interprétateur de commande (shell)</a>, et
|
||||
vous pouvez utiliser la plupart des commandes Unix fondamentales sur les
|
||||
<a href="&url.tuteurs;unix/fichiers.html">fichiers</a> et les
|
||||
<a href="&url.tuteurs;unix/repertoires.html">répertoires</a>, comme
|
||||
<code>ls</code>, <code>cd</code>, <code>rm</code>, <code>mkdir</code>,
|
||||
<code>rmdir</code>. Vous pouvez ainsi vous déplacer dans les
|
||||
répertoires distants (si vous avez le droit de le faire).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Nombre de commandes existent aussi avec la lettre <code>l</code> devant (ce
|
||||
qui donne <code>lls</code>, <code>lcd</code>, ...), ce qui signifie que ces
|
||||
commandes doivent être executées sur la machine locale. Vous pouvez ainsi
|
||||
vous déplacer à la fois sur la machine distante et la machine locale. Pour
|
||||
faire des transferts, deux commandes existent principalement :
|
||||
</p>
|
||||
|
||||
<h3>Récupérer</h3>
|
||||
|
||||
<p>
|
||||
<code>get</code> permet de ramener un fichier de la machine distance vers la
|
||||
machine locale. Vous pouvez mettre plusieurs noms de fichiers à la suite
|
||||
pour ramener plusieurs fichiers. Si vous voulez ramener un fichier tout en
|
||||
changeant son nom, utilisez l'option -z :
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
get -z <em>fichier-distant</em> <em>nom-du-fichier-local</em>
|
||||
</pre>
|
||||
|
||||
<h3>Envoyer</h3>
|
||||
|
||||
<p>
|
||||
<code>put</code> permet de copier un fichier de la machine locale vers la
|
||||
machine distante. Elle s'utilise exactement comme <code>get</code>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
&icone.attention;
|
||||
Des problèmes peuvent apparaitre si vous faites des transferts entre machine
|
||||
utilisant des <strong>systèmes d'exploitation différents</strong> (comme
|
||||
Unix et Windows). En particulier, les passages à la ligne ne sont pas codés
|
||||
pareil sous ces deux systèmes d'exploitation. Par défaut, <code>ncftp</code>
|
||||
ne modifie pas les fichiers transférés, et un fichier texte ramené sous Unix
|
||||
depuis Windows pourra présenter des « ^M » à la fin de chaque ligne
|
||||
(tandis qu'un fichier texte transféré dans l'autre sens ne fera pas le
|
||||
retour chariot à la fin des lignes). Deux commandes, à taper avant la
|
||||
commande de transfert, servent à modifier cela :
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li> <code>ascii</code> précise à <code>ncftp</code> de faire la
|
||||
conversion.</li>
|
||||
<li> À l'inverse, si on veut s'assurer qu'aucune tentative de conversion ne
|
||||
sera faite (si vous transférez des programmes ou des fichiers compressés),
|
||||
utilisez la commande <code>bin</code> avant de faire le transfert.</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Pour quitter <code>ncftp</code>, utilisez la commande <code>quit</code>. On
|
||||
vous demandera alors si vous voulez garder la machine dans les marque-page,
|
||||
éventuellement avec le mot de passe.
|
||||
</p>
|
||||
|
||||
<h2><a name="anonyme">Le FTP anonyme</a></h2>
|
||||
|
||||
<p>
|
||||
Il n'y a pas de réelle différence entre une connexion anonyme ou non anonyme,
|
||||
si ce n'est qu'il n'est pas nécessaire d'utiliser l'option <code>-u</code>.
|
||||
<code>ncftp</code> se charge de donner <code>anomymous</code> comme login,
|
||||
et votre adresse de courier électronique comme mot de passe. Vous pouvez
|
||||
alors utiliser les commandes exactement comme dans une connexion non
|
||||
anonyme. Notez que vous n'aurez que rarement l'occasion d'utiliser des
|
||||
commandes qui modifient le contenu du disque de la machine distante
|
||||
(<code>rm</code>, <code>put</code>, <code>mkdir</code>...), mais cela peut
|
||||
arriver.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Il est possible de passer en ligne de commande de <code>ncftp</code> une URL
|
||||
de la forme
|
||||
<code>ftp://<em>machine</em>/<em>chemin-de-repertoires</em>/</code>.
|
||||
<code>ncftp</code> se charge alors d'arriver directement dans le répertoire
|
||||
considéré s'il existe. Un telle URL peut aussi être utilisée avec Netscape
|
||||
(à la place de l'URL des pages Web).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
N'ont été décrites que les commandes de base de <code>ncftp</code>, qui est un
|
||||
outil puissant. Consultez le <a href="&url.jargon;#RTFM">manuel</a> de
|
||||
<code>ncftp</code> pour plus de détails.
|
||||
</p>
|
||||
|
||||
<h2><a name="exemples">Quelques sites anonymes</a></h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>ftp.jussieu.fr</code> contient une quantité de logiciels telle qu'il est
|
||||
illusoire de tous les détailler ici. En vrac, on y trouve plusieurs
|
||||
distributions à jour de Linux, de nombreux utilitaires Unix libres, des
|
||||
distributions de TeX et LaTeX (installables sous Windows ou Macintosh), etc...
|
||||
Nombre de logiciels installés chez <em>gourous</em> viennent de ce site.
|
||||
</li>
|
||||
<li>
|
||||
<code>ftp.funet.fi</code> contient de nombreux miroirs d'autres sites
|
||||
(c'est-à-dire qu'il recopie régulièrement d'autres sites pour que leur contenu
|
||||
soit plus facilement accessible), ce qui le rend très utile pour les
|
||||
utilisateurs européens (ce site est en Finlande) pour qui les connexions avec
|
||||
les sites américains est lente.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Afin de faciliter les recherches entre les différents sites FTP, un logiciel
|
||||
nommé <code>archie</code> (ou <code>xarchie</code>) existe. Son usage est
|
||||
toutefois assez malaisé. Une bonne méthode est de demander autour de soi
|
||||
si quelqu'un ne sait pas où trouver ce que vous cherchez.
|
||||
</p>
|
||||
|
||||
<h2><a name="macwin">FTP sous Macintosh et Windows</a></h2>
|
||||
|
||||
<p>
|
||||
La machine distante d'une connexion FTP (le serveur) est presque toujours une
|
||||
machine sous Unix. Mais la machine locale (le client) peut être sous Macintosh
|
||||
ou Windows :
|
||||
</p>
|
||||
|
||||
<h3>Sous Windows</h3>
|
||||
|
||||
<p>
|
||||
Le programme lancé depuis une fenêtre de commande DOS s'appelle
|
||||
<code>ftp</code> et s'utilise un peu comme <code>ncftp</code> (en moins
|
||||
bien).
|
||||
</p>
|
||||
|
||||
<h3>Sous Macintosh</h3>
|
||||
|
||||
<p>
|
||||
Le programme s'appelle Fetch. Vous en trouverez une présentation dans les
|
||||
<a href="http://barthes.ens.fr/CIL/doc-IU/cours-IU.html#4">cours de
|
||||
l'informatique littéraire</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Ces programmes vous permettent une connexion non anonyme, ce que Netscape fait
|
||||
difficilement.
|
||||
</p>
|
||||
|
||||
<div class="metainformation">
|
||||
Auteur : Dominique Quatravaux, Émilia Robin. <date value="from git" /> </div>
|
||||
|
||||
</body>
|
||||
</html>
|
48
www/internet/loin/index.tml
Normal file
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
|
||||
"tuteurs://DTD/tml.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Connexion distante</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Connexion à distance</h1>
|
||||
|
||||
<p>L'un des plus anciens aspects de l'Internet, c'est la connexion à
|
||||
distance d'une machine à l'autre. En pratique, la connexion à distance
|
||||
vous permet de lire votre mail sur clipper, et de manière générale
|
||||
utiliser votre compte à l'ENS, alors que vous n'êtes pas physiquement
|
||||
dans une salle informatique.</p>
|
||||
|
||||
<ul>
|
||||
<li> L'outil de base, simple et sûr, pour travailler à distance sur une
|
||||
machine Unix est <a href="ssh.html">SSH</a>.
|
||||
</li>
|
||||
|
||||
<li>On peut même réaliser un <a href="tunnel.html">tunnel SSH</a>
|
||||
pour accéder à des sites dont l'accès est restreint, comme si l'on
|
||||
était connecté sur un ordinateur distant.</li>
|
||||
|
||||
<li> Le <a href="ftp.html">transfert de fichiers par FTP</a>. Attention,
|
||||
il n'est (généralement) pas sécurisé, ce qui veut dire qu'il est
|
||||
possible d'espionner ce que vous transférer, y compris votre mot de
|
||||
passe si vous en utilisez un. Pour avoir une connexion chiffrée,
|
||||
utilisez les fonctionnalités de transfert de fichier de SSH.</li>
|
||||
|
||||
<li> Telnet permet de faire à peu près les mêmes choses que ssh, et
|
||||
était très utilisé avant la généralisation de ce derniers. Voici
|
||||
pourquoi il vaut mieux <a
|
||||
href="&url.tuteurs;internet/dangers_telnet.html">ne pas
|
||||
l'utiliser</a>. Les connexions à distance posent un problème de
|
||||
sécurité : un pirate peut essayer d'intercepter votre connexion pour
|
||||
récupérer vos données, ou gagner un accès à votre compte.
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<div class="metainformation">Auteur : Marie-Lan Nguyen. <date value="from git" /></div>
|
||||
|
||||
</body>
|
||||
</html>
|
652
www/internet/loin/ssh.tml
Normal file
|
@ -0,0 +1,652 @@
|
|||
<?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 les machines des salles informatiques de l'ENS, et sur la machine <code>sas</code>. (Le serveur des élèves, clipper, n'est pas accessible par SSH pour des raissons de sécurité.)
|
||||
</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>horus.ens.fr</code>, etc.) que son adresse IP (pour sas.eleves,
|
||||
<code>129.199.129.11</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 ~</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, vous voulez, de votre machine
|
||||
personnelle, connaître l'heure sur sas.eleves, pour savoir si votre
|
||||
machine est en retard, en avance ou à l'heure.
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
<span class="prompt">machineloc ~ $</span> ssh sas.eleves.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>
|
||||
|
335
www/internet/loin/tunnel.tml
Normal file
|
@ -0,0 +1,335 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
|
||||
"tuteurs://DTD/tml.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Tunnel SSH</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Créer un tunnel SSH</h1>
|
||||
|
||||
<p>
|
||||
Certains sites Internet ne sont accessibles que depuis certains
|
||||
ordinateurs, serveurs ou domaines très précis. Par exemple, pour accéder
|
||||
à certains articles de revues par l'abonnement de l'ENS, on doit se connecter depuis
|
||||
l'un des ordinateurs de l'École. Cette contrainte permet d'être certain que seules les
|
||||
personnes autorisées pourront accéder à certaines données, après s'être
|
||||
préalablement identifiées au moyen d'un mot de passe.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Mais cet avantage a un inconvénient. Si vous êtes à l'étranger, ou si
|
||||
vous êtes tout simplement chez vous et ne pouvez vous rendre
|
||||
physiquement devant les ordinateurs en question, ces ressources vous
|
||||
sont inaccessibles...
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Heureusement, il existe la technique
|
||||
du <strong>tunnel SSH</strong>. Celle-ci consiste à « creuser
|
||||
un tunnel » entre votre connexion et un serveur autorisé pour y
|
||||
faire passer les informations de manière sécurisée. En d'autres termes,
|
||||
vous allez :
|
||||
</p>
|
||||
|
||||
<ol>
|
||||
<li>ouvrir une connexion sécurisée avec ce serveur (par exemple
|
||||
sas.eleves.ens.fr, à l'ENS) ;</li>
|
||||
<li>dire à votre navigateur de se brancher sur cette
|
||||
connexion ;</li>
|
||||
<li>vous connecter à des sites comme si vous étiez sur ce
|
||||
serveur.</li>
|
||||
</ol>
|
||||
|
||||
<div class="attention">Pour pouvoir ouvrir un tunnel SSH avec
|
||||
l'ENS, vous devez disposer d'un compte sur les machines de
|
||||
l'École.</div>
|
||||
|
||||
<h2>Ouvrir le tunnel</h2>
|
||||
|
||||
<p>
|
||||
Nous allons commencer par ouvrir le tunnel. La façon de procéder dépend
|
||||
du système d'exploitation que vous utilisez.
|
||||
</p>
|
||||
|
||||
<h3>Avec Linux ou Mac OS X</h3>
|
||||
|
||||
<p>Avec Linux ou tout autre dérivé d'UNIX (BSD, Solaris, Mac OS X,
|
||||
etc.), la procédure est sans doute la plus simple. Suivez les étapes
|
||||
suivantes pour mettre en place un tunnel SOCKS entre votre machine et la machine distante.</p>
|
||||
|
||||
<ol>
|
||||
|
||||
<li><strong>Ouvrez un terminal</strong>, c'est-à-dire une fenêtre en mode
|
||||
texte permettant de taper des lignes de commande.
|
||||
|
||||
<div class="encadre">
|
||||
Sous <strong>Mac OS X</strong>, pour ouvrir un
|
||||
terminal, allez dans Finder > Applications >
|
||||
Utilitaires > Terminal.</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
Quand le terminal est ouvert, tapez dedans la <strong>ligne de
|
||||
commande</strong> suivante (faites un copier-coller si vous
|
||||
voulez être sûr de ne pas faire d'erreur) :
|
||||
|
||||
<pre><span class="prompt">toto@ordinateur $</span> ssh -ND 3128 <strong><em>monlogin</em></strong>@sas.eleves.ens.fr</pre>
|
||||
|
||||
<div class="attention">
|
||||
Attention !
|
||||
<ol>
|
||||
<li>Ne tapez pas la partie
|
||||
« <strong>toto@ordinateur</strong> $ », qui est
|
||||
l'invite de commande ;</li>
|
||||
<li>remplacez
|
||||
« <strong><em>monlogin</em></strong> » par votre
|
||||
identifiant (<em>login</em>).</li>
|
||||
<li>Cette commande ne va rien afficher, il y a aura juste un curseur qui clignote. C'est normal, et cela veut dire que la connexion est active. Vous pouvez alors passer à la suite, et lorsque vous voudrez fermer le tunnel pour vous déconnecter, vous n'aurez qu'à faire Ctrl+C. Pour avoir une sortie plus détaillée, vous pouvez rajouter l'option -v à la commande précédente.</li>
|
||||
</ol>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li> Une connexion avec l'ENS va s'établir, en ouvrant un
|
||||
tunnel SSH. Donnez votre <strong>mot de passe</strong>. La
|
||||
première fois, on vous demandera si vous acceptez la clef SSH,
|
||||
afin d'éviter toute tentative d'usurper l'identité de la
|
||||
machine distante : vérifiez que le fingerprint indiqué
|
||||
est bien "d2:2f:2d:e6:22:17:16:1c:54:5f:e3:9a:0b:88:db:37" ou
|
||||
"e9:54:4a:e6:f8:51:e9:8b:90:d5:c9:b6:24:c0:4e:60" ou
|
||||
"2d:fe:8f:d2:10:1e:5d:7f:aa:d0:0f:d4:70:3e:fc:85" et si c'est
|
||||
le cas répondez « Yes ».
|
||||
|
||||
<div class="encadre">Petite explication technique : la
|
||||
commande indiquée plus haut demande à ssh de créer un tunnel dynamique entre
|
||||
la machine locale et la machine distante (sas.eleves.ens.fr) en utilisant le port 3128.
|
||||
Tout le trafic arrivant sur ce port sur la machine locale sera redirigé sur la machine
|
||||
distante (option -D 3128). De plus, on dit à ssh de ne pas exécuter de commandes distantes
|
||||
avec l'option -N.
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
Si ssh n'a pas signalé d'erreur, le tunnel est maintenant opérationel et
|
||||
vous pouvez passer à la section suivante. (Il est normal que ssh ne vous
|
||||
rende pas la main, ou qu'il vous rende la main sans ouvrir de shell sur
|
||||
sas.) Attention, vous ne devez pas fermer la fenêtre de terminal avant
|
||||
d'avoir terminé votre navigation, sous peine de devoir recommencer les
|
||||
étapes précédentes.
|
||||
|
||||
<div class="encadre">Si vous voulez avoir plus d'informations sur la connexion SSH
|
||||
et l'état du tunnel, vous pouvez utiliser l'argument " -v " (à ajouter après ssh
|
||||
dans la ligne de commande précédente) qui donnera un log détaillé de ce que fait ssh.
|
||||
Dans ce cas, le signe que le tunnel est ouvert est la ligne "entering interactive session."
|
||||
</div>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
|
||||
<h3>Avec Windows</h3>
|
||||
|
||||
<div class="encadre">
|
||||
<p>Sur Windows 10, vous avez l'option d'activer la fonctionnalité expérimentale OpenSSH de Windows. Pour cela, allez dans "Paramètres > Applications > Gérer les fonctionnalités
|
||||
facultatives > ajouter une fonctionnalité > Open SSH Client (Beta)", puis redémarrez votre ordinateur.</p>
|
||||
<p>Vous pouvez désormais utiliser les fonctionnalités ssh dans Windows Powershell. Les lignes de commandes indiquées pour
|
||||
Linux/macOS (<b>ssh -D 3128 monlogin@sas.eleves.ens.fr</b>) fonctionnent de la même façon.</p></div>
|
||||
|
||||
<p><i>Sur les autres distributions de Windows/sans activer OpenSSH : </i></p>
|
||||
<p>Pour ouvrir un tunnel SSH depuis Windows, vous aurez besoin
|
||||
du logiciel <strong>PuTTY</strong>. Téléchargez le
|
||||
programme <strong>putty.exe</strong> à
|
||||
l'adresse <a
|
||||
href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html">http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html</a>.
|
||||
</p>
|
||||
|
||||
<h4>La première fois</h4>
|
||||
|
||||
<p> Ouvrez le programme <strong>putty.exe</strong>.
|
||||
</p>
|
||||
|
||||
<p>Remplissez les champs suivants :</p>
|
||||
|
||||
<ol>
|
||||
<li>dans l'onglet « Session » :
|
||||
<ol>
|
||||
<li><strong>Host name (or IP
|
||||
address)</strong> : <code>sas.eleves.ens.fr</code></li>
|
||||
<li><strong>Port</strong> : <code>22</code></li>
|
||||
<li><strong>Protocole</strong> : <code>SSH</code></li>
|
||||
<li><strong>Saved sessions</strong> : <code>ENS par tunnel
|
||||
SSH</code>
|
||||
<p><img src="tunnel0.png" alt="Configuration de l'onglet
|
||||
Session" /></p>
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
</li>
|
||||
<li>dans l'onglet « SSH », puis « Tunnel »
|
||||
<ol>
|
||||
<li><strong>Source port</strong> : <code>3128</code></li>
|
||||
<li><strong>Destination</strong> : <code>www-cache.ens.fr:3128</code></li>
|
||||
<li>cliquer sur « <strong>Add</strong> »
|
||||
<p><img src="tunnel1.png" alt="Configuration de l'onglet
|
||||
Tunnel" /></p>
|
||||
|
||||
<p>
|
||||
Vous verrez alors : </p>
|
||||
<p><img src="tunnel2.png" alt="Après configuration de
|
||||
l'onglet Tunnel" /></p>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>dans l'onglet « Session » :
|
||||
<ol>
|
||||
<li>cliquer sur « <strong>Save</strong> ».</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
|
||||
<h4>Les fois suivantes</h4>
|
||||
|
||||
<p>Désormais, pour ouvrir le tunnel SSH, il vous suffira de
|
||||
cliquer deux fois sur « ENS par tunnel SSH ». Donnez
|
||||
votre
|
||||
<strong>identifiant</strong> (<em>login</em>) et votre <strong>mot de
|
||||
passe</strong>. La première fois, on vous demandera si vous acceptez
|
||||
la clef SSH, afin d'éviter toute tentative d'usurper l'identité de
|
||||
sas : vérifiez que le fingerprint indiqué est bien
|
||||
"d2:2f:2d:e6:22:17:16:1c:54:5f:e3:9a:0b:88:db:37" et répondez « Yes ».
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<h2>Emprunter le tunnel</h2>
|
||||
|
||||
<p>Que vous utilisiez Linux, Mac OS, Windows, FreeBSD ou autre,
|
||||
vous avez maintenant ouvert le tunnel. Le signe qu'il est ouvert,
|
||||
c'est la fenêtre de terminal ouverte. Attention, si vous fermez la fenêtre
|
||||
de terminal, le tunnel se fermera.</p>
|
||||
|
||||
<p>Il reste à emprunter ce tunnel. Pour cela, vous devrez configurer
|
||||
votre navigateur pour lui dire d'utiliser
|
||||
le <strong>proxy</strong> <code>localhost</code> avec le port
|
||||
<code>3128</code>. Nous ne pouvons pas faire l'inventaire de tous
|
||||
les navigateurs qui existent, alors voici simplement comment faire
|
||||
pour les principaux. Pour les autres (Konqueror, Galeon, Epiphany,
|
||||
Mozilla, w3m...), cela ne devrait pas être très différent.</p>
|
||||
|
||||
|
||||
<h3>Avec Firefox pour Linux / Mac OS X</h3>
|
||||
<p>Allez dans <code>Edit</code>, puis <code>Preferences</code>, <code>Advanced</code>, <code>Network</code> et <code>Settings</code> :</p>
|
||||
|
||||
<p><img src="tunnel8.png" alt="Options de connection dans Firefox" /></p>
|
||||
<p>Alternativement, allez dans <code>Edit</code>,
|
||||
puis <code>Preferences</code>, et enfin <code>Connexion
|
||||
settings</code> :</p>
|
||||
|
||||
<p><img src="tunnel5.png" alt="Options de connection dans Firefox"/></p>
|
||||
|
||||
<p>Si vous avez suivi la méthode pour Linux, indiquez à votre navigateur
|
||||
que vous voulez <strong>utiliser un proxy</strong>, en cliquant sur « <code>Manual proxy
|
||||
configuration</code> », puis en
|
||||
tapant <code>localhost</code> comme proxy SOCKS,
|
||||
et <code>3128</code> comme port :</p>
|
||||
|
||||
<p><img src="tunnel9.png" alt="Paramètres de connection dans Firefox" /></p>
|
||||
|
||||
<h3>Avec Firefox pour Windows</h3>
|
||||
|
||||
<p>Allez dans <code>Edit</code>,
|
||||
puis <code>Preferences</code>, <code>Advanced</code>, <code>Network</code> et <code>Settings</code> :</p>
|
||||
|
||||
<p> <img src="tunnel8.png" alt="Options de connection dans Firefox"/></p>
|
||||
<p>Alternativement, allez dans <code>Edit</code>,
|
||||
puis <code>Preferences</code>, et enfin <code>Connexion
|
||||
settings</code> :</p>
|
||||
|
||||
<p><img src="tunnel5.png" alt="Options de connection dans Firefox"/></p>
|
||||
|
||||
|
||||
<p>Si vous avez suivi la méthode pour Windows, indiquez à votre navigateur
|
||||
que vous voulez <strong>utiliser un
|
||||
proxy</strong>, en cliquant sur « <code>Manual proxy
|
||||
configuration</code> », puis en
|
||||
tapant <code>localhost</code> comme proxy HTTP,
|
||||
et <code>3128</code> comme port :</p>
|
||||
|
||||
<p><img src="tunnel6.png" alt="Paramètres de connection dans Firefox" /></p>
|
||||
|
||||
|
||||
<h3>Avec Internet Explorer pour Windows : </h3>
|
||||
|
||||
<p>
|
||||
Allez dans <code>Options</code>, puis cliquez sur l'onglet
|
||||
<code>Connections</code> ; cliquez sur le bouton
|
||||
« <code>Paramètres réseau</code> », comme
|
||||
indiqué sur l'image suivante :</p>
|
||||
<p><img src="tunnel3.png" alt="Bouton Paramètres réseau" />
|
||||
</p>
|
||||
|
||||
|
||||
<p> Ensuite, cochez la case « <code>Utiliser un serveur
|
||||
proxy pour votre réseau local</code> », et indiquez
|
||||
d'utiliser l'adresse <code>localhost</code> avec le
|
||||
port <code>3128</code> :</p>
|
||||
<p><img src="tunnel4.png" alt="Adresse du proxy" />
|
||||
</p>
|
||||
|
||||
|
||||
<p>Maintenant, le tunnel est ouvert, et votre navigateur est disposé à
|
||||
l'emprunter. Demandez-lui d'aller à l'adresse
|
||||
<a href="http://www.intranet.ens.fr">http://www.intranet.ens.fr</a>
|
||||
pour <strong>vérifier son bon fonctionnement</strong>.
|
||||
</p>
|
||||
|
||||
<h2>Reboucher le tunnel</h2>
|
||||
|
||||
<p>Quand vous avez fini de consulter les sites qui nécessitent de passer
|
||||
par un tunnel SSH, et à ce moment seulement, vous pouvez le
|
||||
fermer. C'est comme si vous « rebouchiez » le tunnel après l'avoir
|
||||
emprunté. Il suffit pour cela de :</p>
|
||||
|
||||
<ol>
|
||||
<li> retourner dans les <em>options de votre navigateur</em>, et de lui
|
||||
indiquer de <strong>ne pas utiliser de proxy</strong>.</li>
|
||||
|
||||
<li> <strong>fermer la fenêtre de terminal</strong> avec laquelle vous
|
||||
avez ouvert le tunnel.</li>
|
||||
|
||||
</ol>
|
||||
|
||||
<h2>Quelques sites accessibles depuis l'ENS</h2>
|
||||
|
||||
<p>Voici quelques-uns des sites dont l'accès est restreint à
|
||||
l'ENS :</p>
|
||||
|
||||
<ul>
|
||||
<li><a
|
||||
href="http://www.intranet.ens.fr">http://www.intranet.ens.fr</a>,
|
||||
l'Intranet de l'ENS ;</li>
|
||||
<li><a
|
||||
href="http://www.ens.fr/annuaire">http://www.ens.fr/annuaire/</a>,
|
||||
l'Annuaire interne de l'ENS ;</li>
|
||||
<li><a href="http://entapps.ens.fr/joomla/index.php?option=com_content&view=article&id=532:menu-de-la-semaine">http://entapps.ens.fr/joomla/index.php?option=com_content&view=article&id=532:menu-de-la-semaine</a>,
|
||||
le Menu du Pot de l'ENS ;</li>
|
||||
<li><a href="http://salles.ens.fr/">http://salles.ens.fr/</a>, le
|
||||
planning de réservation des salles.</li>
|
||||
</ul>
|
||||
|
||||
<p>L'ENS profite également de certaines offres commerciales, telles que
|
||||
des encyclopédies en ligne, des bases de données documentaires,
|
||||
etc. Notamment, depuis
|
||||
la <a href="http://halley.ens.fr/search*frc~S9/">bibliothèque
|
||||
électronique de l'ENS</a>, vous aurez accès aux ressources
|
||||
d'« Accès réservé aux postes de l'ENS ».</p>
|
||||
|
||||
<div class="metainformation">
|
||||
Auteurs : Baptiste Mélès, Lionel Fourquaux, Lucas Verney.
|
||||
<date value="from git" />
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
BIN
www/internet/loin/tunnel0.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
www/internet/loin/tunnel1.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
www/internet/loin/tunnel2.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
www/internet/loin/tunnel3.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
www/internet/loin/tunnel4.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
www/internet/loin/tunnel5.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
www/internet/loin/tunnel6.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
www/internet/loin/tunnel7.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
www/internet/loin/tunnel8.png
Normal file
After Width: | Height: | Size: 43 KiB |
BIN
www/internet/loin/tunnel9.png
Normal file
After Width: | Height: | Size: 67 KiB |