Files
lespiedsdanslecode/content/posts/2007/2007-01-23-ssh-avec-clefs/index.html
T
2020-02-07 22:28:25 +01:00

86 lines
6.1 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Yannick François - Les pieds dans le code</title>
<meta name="DC.title" content="elsif.fr, site de Yannick François aka yaf aka pouype."/>
<meta name="description" content="Yannick François's website. Senior developer, Code pedagogist. /ut7 teammate, proud member of Electrolab, the crazy hackerspace. Eternel supporter of April, a french association about freesoftware."/>
<meta name="keywords" content="code, développement, lean, agile, logiciel, tdd, objet, ruby, site perso, personnel, ruby on rails, refactoring, openbsd, bsd, libre, creative commons, unix"/>
<meta name="author" content="Yannick François, https://elsif.fr"/>
<meta name="designer" content="Yannick François, https://elsif.fr"/>
<meta name="geo.placename" content="Poissy, Ile de france, France"/>
<meta name="robots" content="index,follow" />
<meta name="language" content="French" />
<meta name="HandheldFriendly" content="True" />
<meta name="MobileOptimized" content="320" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0" />
<link rel="index" title="Yannick François / Developer" href="https://elsif.fr" />
<link rel="stylesheet" href="/css/knacss.css" media="all"/>
<link rel="stylesheet" href="/css/elsif.css" media="all"/>
<article>
<h1>
ssh avec clefs
</h1>
<p>Accéder à un serveur, avant ça se faisait par <a href="http://fr.wikipedia.org/wiki/Telnet">telnet</a>. Maintenant Telnet est utilisé pour tester les connexions dun serveur HTTP ou SMTP (ou autres) mais surement pas pour faire de ladministration de machine, car telnet est simple, basique et transmet en clair toute les instruction tapé, y compris les mots de passe.</p>
<p>Pour un accès plus sécurisé, ladministration de serveur (ou la simple connexion) seffectue par le biais d<a href="http://fr.wikipedia.org/wiki/SSH">SSH</a>. SSH est un protocole de communication, <a href="http://fr.wikipedia.org/wiki/OpenSSH">OpenSSH</a> (voir aussi le site officiel <a href="http://www.openssh.com/fr/">OpenSSH.org</a>) est un ensemble doutil libre permettant lutilisation de ce protocole.</p>
<p>Bon on arrête là les liens vers wikipedia :p Le but cest donc de ce connecté de manière sécurisé à une machine distante. Pour cela, la machine distante doit avoir un “serveur” (ou démon) ssh qui écoute sur un port (par défaut: le 22). La commande en question: <code>ssh login@machine</code></p>
<p>Et oui, tout simplement aller voir la man page <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ssh">ssh(1)</a> pour en savoir plus.</p>
<p>Ensuite il faut saisir un mot de passe. Quand cest une fois de temps à autre, ça peut aller. Quand cela vous arrive souvent taper tout le temps des mot de passe peut devenir pénible. On peut y remédier simplement. Tout dabord, il faut se créer une clé. La commande <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-keygen">ssh-keygen(1)</a> nous permet de créé une clé privée et une clé publique chiffré en utilisant soit un type <a href="http://fr.wikipedia.org/wiki/Rivest_Shamir_Adleman">RSA</a> soit <a href="http://fr.wikipedia.org/wiki/Digital_Signature_Algorithm">DSA</a> (arf, encore des lien wikipédia :-p ). Prenons DSA qui apparement est plus sécurisé (je ne suis pas un expert en sécurité, si quelquun peut me confirmé ça ?)</p>
<pre>
{% highlight bash %}
yafra@yeti:~$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/yafra/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/yafra/.ssh/id_dsa.
Your public key has been saved in /home/yafra/.ssh/id_dsa.pub.
The key fingerprint is:
xx:33:xx:11:DD:aa:a1:33:dc:d1:ca:ef:09:fd:28:e6 yafra@yeti
{% endhighlight %}
</pre>
<p>En plus de préciser lendroit où lon souhaite placer les clefs, on peut préciser une phrase qui servira de confirmation de clef. Cette commande va donc créer une clé publique et une privée dans le répertoire .ssh (dans mon cas). On retrouve un fichier id_dsa pour la clé privée et un id_dsa.pub pour la clé publique.</p>
<p>Bien, maintenant on va ajouter la clé publique sur les serveur que lon veux pouvoir contacter sans saisir de mot de passe. On vas utiliser la commande <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=scp">scp(1)</a> pour ça.</p>
<p><code>scp .ssh/id_dsa.pub monlogin@monserveur:.ssh/</code></p>
<p>On place notre clé publique dans le repertoire .ssh de notre utilisateur sur le serveur cible. Ensuite il faut se placer sur le serveur en question pour effectuer lajout de la clé dans la liste des cléfs autorisés:</p>
<pre>
{% highlight bash %}
ssh monlogin@monserveur
cat .ssh/id_dsa.pub &gt;&gt; .ssh/authorized_keys
{% endhighlight %}
</pre>
<p>Et voilà, le tour est joué. On peut maintenant se connecter en ssh sur cette machine en tapant simplement: <code>ssh monlogin@monserveur</code></p>
<p>Et sans avoir à taper de mot de passe. La seul condition est davoir la clé privé correspondante placé dans le repertoire .ssh (ou autre en fonction de la configuration du client ssh, mais cest une autres histoire).</p>
<p><em>Ca faisait longtemps que javais pas posté. Faut dire quen se moment jesuis pas mal pris&hellip; tiens je vais dailleurs faire un petit top un de ces jours, dès que jai retouché quelque photos pour mettre avec :).</em></p>
<p><em>Pour ce qui est de ce billet, cest pas bien compliqué, cest des infos quon peut trouver sur pas mal de site, mais je pense que ça ne tueras personne que linfo soit disponible un peu plus :) et puis ça me fait plaisir de parler dOpenSSH et de SSH en général, je men sert quotidiennement. Désolé pour ceux qui eventuellement ne comprendrais rien à tout ça (hein Terckan ;-) ).</em></p>
<article>
<footer style="font-size:75%;text-align:right"><em><a href="/feed.xml">suivre les articles</a></em></footer>
</body>
</html>