Procédure pour avoir un environnement de dévelopement local facile à configurer avec Apache

Je ne sais pour vous, mais je ne peut plus programmer sans avoir l’environement serveur localement sur ma machine. Changer ou ajouter un fichier VirtualHost pour chaque nouveau projet est assez répétitif. Il doit y avoir une façon automatique de le faire?

Oui.

Ça s’appelle VirtualDocumentRoot

J’ai ce tutoriel qui traîne dans mon Wiki personnel depuis des lustres, et c’est maintenant que je commence a migrer mes projets sous NGINX que je décide de le mettre en ligne. Il n’est jamais trop tard pour publier.

Cette méthode de configuration répond exactement au besoin précis de ne pas avoir a configurer un hôte virtuel apache pour chaque projet.

Avec cette procédure, vous n’aurez qu’a maintenir votre fichier hosts, le reste suivra tout seul.

Vous pouvez appliquer cette technique avec n’importe quelle version du serveur http “Apache”. Cette procédure peut même être faite si vous développez sous Windows ou Mac OS avec les distributions du serveur HTTP Apache sous Windows telles que MAMP, XAMPP, et EasyPHP.

Pourtant avec un serveur web local, ce type de configuration est possible depuis longtemps, il faut simplement savoir comment ça s’appelle: VirtualDocumentRoot.

Voici comment je configure mon environnement LAMP depuis quelques temps.

Procédure

Établissement du standard

Tout commence par une certaine convention. Avec celle-ci, tout devrait suivre automatiquement.

L’idée est de pouvoir accéder a un l’espace de travail du projet A du client B sur ma machine locale. L’adresse locale n’est plus localhost, mais quelque chose de plus explicite.

Ce que j’apprécie le plus de cette méthode car elle permet de conserver dans un dossier parent tout ce qui est spécifique pour le projet et le client. Le code a exécuter qui soit dans un sous-dossier ne feait que du sens.

Par exemple, un projet appelé projectname du client client serait classé dans un dossier sous le chemin /home/renoirb/workspace/client/projectname.

Le code du projet web serait accessible via le serveur web à l’adresse http://projectname.client.dev/ qui pointe vers l’adresse IP de la station de travail locale.

L’espace de travail du projet

IMPORTANT
Il faut que les noms de dossiers soient en minuscule et aucun espace, ni caractères accentués, sinon le serveur Apache risque de ne pas trouver le dossier. Principalement parce que l’adresse entrée dans le navigateur est convertie en bas de case, et que généralement un système d’exploitation qui se respecte fait une différence entre, par exemple ‘Allo’ et ‘allo’.

La convention suggérée va comme suit:

  • chaque projet est classé dans un chemin prévisible, similaire à /home/renoirb/workspace/client/projectname
  • le projet a un dossier web/
  • les autres dossiers au même niveau que web/ peuvent être n’importe quoi d’autre.

Idéalement, la logique applicative ne devrait pas être visible publiquement de toute façon. Seulement le fichier principal appelle l'”autoloader” en dehors du DocumentRoot.

De cette façon le vous pouvez classer tout vos projets du même client, et séparer par projets.

La procédure tient aussi en compte
* L’utilisateur courrant puisse écrire dans son dossier workspace/ avec Apache2 comme s’il était son propre utilisateur avec mpm-itk
* Le nom de domaine utilisé définit dans quel dossier de l’utilisateur chercher

Procédure

  • Assurer que les modules sont chargés
     sudo a2enmod vhost_alias
  • Ajouter le fichier default a la config de apache
     sudo vi /etc/apache2/ports.conf
  • Vérifier qu’il y a ceci:
    NameVirtualHost *:80 
    Listen 80 
    UseCanonicalName Off
  • Modifier le fichier de config du VirtualHost par défaut
  • Fichier de configuration par magique
    sudo vi /etc/apache2/sites-available/default
  • Verifier qu’il y a ce bloc dans <VirtualHost ...>:
    <IfModule mpm_itk_module>
        AssignUserId renoirb users
    </IfModule>
  • Remplacer la mention DocumentRoot par ce format:
    VirtualDocumentRoot /home/renoirb/workspaces/%1/%0/web

Sources

Comment je valide et convertit des documents HTML trop chargés ou provenant de Microsoft Word en HTML valide et simplifié

Description

Cette procédure est faite optimiser la conversion document word en html, spécialement ceux qui sont généré avec beaucoup de «tagsoup» en en simplifier a sa plus simple expression html. Valide.

Sauter à la Procédure

Exemple

Avant
<h2 class="Standard" dir="ltr" lang="fr-FR" style="margin-top: 0; margin-bottom: 0; text-align: center;" xml:lang="fr-FR">
  <span lang="en-CA" style="font-weight: bold; font-size: 16.0px;" xml:lang="en-CA">TERMS AND CONDITIONS OF 1</span> <span lang="en-CA" style="font-weight: bold; font-size: 16.0px;" xml:lang="en-CA">‐</span> <span lang="en-CA" style="font-weight: bold; font-size: 16.0px;" xml:lang="en-CA">YEAR OR 30</span> <span lang="en-CA" style="font-weight: bold; font-size: 16.0px;" xml:lang="en-CA">‐</span> <span lang="en-CA" style="font-weight: bold; font-size: 16.0px;" xml:lang="en-CA">DAY ACCESS AND USE</span>
</h2>

<span lang="en-CA" style="font-weight: bold; font-size: 16.0px;" xml:lang="en-CA">OF THE SERVICE BY SUBSCRIBERS</span> <span lang="en-CA" style="font-weight: bold; font-size: 16.0px;" xml:lang="en-CA">SECTION 1</span> <span lang="en-CA" style="font-weight: bold; font-size: 16.0px;" xml:lang="en-CA">PURPOSE OF THE SERVICE</span>
Après
<h2>TERMS AND CONDITIONS OF 1 ‐ YEAR OR 30 ‐ DAY ACCESS AND USE</h2>

<span>OF THE SERVICE BY SUBSCRIBERS SECTION 1 PURPOSE OF THE SERVICE</span> 

 

Inspiration et pistes

  1. Convertir de format document en ligne de commandeDe Word2000 vers HTML, voir UNOCONV http://dag.wieers.com/home-made/unoconv/#download

 

 

 

Procédure 

Version abstraite

  1. Utiliser Open Office (ou peu importe) pour exporter le document en HTML

* Purifier via HTMLTidy
* Nettoyer les attributs inutiles avec la classe htmLawed 

Use cases

Document texte seulement

  • Pas de formulaire, ni images, etc
  • Idéal pour un document légal, par exemple.

Étapes concrètes:

  1. A partir du fichier HTML généré exemple: Fichier appelé “1.1.2.en.html”

* Extraire le fichier htmLawed.zip
 
cd ~
mkdir htmlawed
mv htmLawed.zip htmlawed/
cd htmlawed
unzip htmLawed.zip

Passer au travers de la classe htmLawed

require('htmLawed.php');
$config = array('safe'=>1,'elements'=>'a,em,strong,p,ul,li,ol,h1,h2,h3,h4,h5,div,tr,td,table','deny_attribute'=>'* -title -href');
$out = htmLawed(file_get_contents('in.html'), $config);
echo $out;

Rouler le script. Déplacer le fichier a utiliser, puis exécuter le script pour en générer dans out.html

cp ~/1.1.2.en.tidy.html in.html
php cleanup.php &gt; out.html</pre>

Rouler Tidy. Normaliser le fichier “1.1.2.en.html”, Nettoyer les balises, minuscules, etc

tidy --drop-font-tags 1 --logical-emphasis 1 --clean 1 --merge-spans 1 --show-body-only 1 --output-xhtml 1 --word-2000 1 --indent "auto" --char-encoding "utf8" --indent-spaces "2" --wrap "90" 1.1.2.en.html &gt; 1.1.2.en.tidy.html

tada!

Précautions

Ordre d’exécution des tâches

Remarque:

J’ai essayé de passer Tidy avant htmLawed et j’ai réalisé que le nettoyage de htmLawed est assez drastique et que Tidy rend le code plus propre. Sans oublier que htmLawed peut générer des balises vides que Tidy va éliminer.

Références

  1. Options Tidy
  2. htmLawed Documentation a PHP Html purification Class
    1. original documentation
    2. Example settings

Crash course about how DNS works and the things you should know about it

I often come with conversations with people and hear them asking how DNS works for hosting their domains. Most of the time, there is plenty of ressources about this. Nevertheless. I felt like I could try to make a nice answer in less than 200 words.

What is DNS?

Just to have everybody on equal grounds, here is some describing facts about domain name resolution that drives the World wide web.

  • Oldest DNS service is the “hosts” file listing basically IP address and name
  • DNS is all about converting “name” into IP address;
  • Registrar is a provider that takes care to register your specification of DNS servers to the ROOT servers

Essentials to know about DNS configuration

Now, the configuration of it. Configuration made of simple flat text files. Format seems cryptic at first but its very straight to the point.

  • Each file is also called a “zone file”
  • A Zone can be created from any DNS server. It is really used ONLY if you specify them at the registrar
  • Entries in a zone represent a subdomain (A,CNAME), a configuration (TXT), or other peers (NS) one per line
  • Each name must end by a dot. Otherwise it gets to be represented as a subdomain of the current zone file name

Some examples

Rougly. The A, and CNAME entries are the essentials to know about.

CNAME is an alias to a A

    domainname.com. IN A 1.1.1.1
    www IN CNAME domainname.com.
    other.domainname.com. IN A 2.2.2.2

Explanations:

  • Both names www.domainname.com and domainname.com in the address bar wil get same IP but you only have to change the A entry
  • Domain entry always end with a dot. Otherwise (like the case of the “www entry) it gets terminated by the zone name (the SOA (Start Of Authority) declaration) not shown.
  • Most important is also the MX and NS entries.  MX is the mail servers and NS the other new DNS servers. Just make sure it follows through

Hope this helps clarify

Procédure pour créer un serveur FTP sécurisé SSL forcé avec usager virtuels sous Ubuntu Linux avec vsFTPd

Je ne sais pas si vous êtes comme moi mais je n’aime pas laisser non crypté l’accès a un service qui me demande un mot de passe. Je devait monter un serveur cette semaine qui doit avoir les accès FTP.

J’ai pris l’initiative de sécuriser la machine avec du SSL car je crois qu’aujourd’hui c’est notre devoir de faire ce genre de chose. Ce n’est pas la première fois que je configure un serveur FTP over SSL mais je n’avait jamais pris de notes vraiment à ce jour. Je l’ai fait cette fois-ci!

Ce que cette procédure fait…

  1. Pouvoir créer des comptes FTP sans avoir a créer un utilisateur local (donc pas accès shell (SSH)).
  2. Permet les connections FTP over SSL de façon EXPLICITE sur un port non standard  (cet exemple utilisera le port 6123)
  3. Ne permet pas d’utilisateur ni de connexions anonymes
  4. Bannit les hôtes qui tentent de se connecter (LOGIN FAILED) via fail2ban
  5. Utilise le system PAM interne pour l’authentification
  6. Ne requiert pas d’usager local (pas de risque de tentative de connection SSH, usager séparés)
  7. Le serveur FTP roule sur son propre usager

Continue reading “Procédure pour créer un serveur FTP sécurisé SSL forcé avec usager virtuels sous Ubuntu Linux avec vsFTPd”

Comment automatiser une tâche avec CRON en utilisant Vim

Vi - Vi.... Improved (amélioré)
Logo Vim, qui signifie vi-improved (amélioré)

Deux tâches vraiment essentielles qu’on fait en administrant une machine sous Linux sont très souvent de modifier/créer un fichier et de planifier des tâches de maintenance.

Pour utiliser «cron» il faut savoir utiliser «vi», les commandes sont très souvent les mêmes. Je dois spécifier que j’ai basé mon tutoriel sur CRON fourni par Ubuntu Linux qui est (de mémoire) le même paquet que celui fourni dans Red Hat LinuxDebian Linux ou Ubuntu Linux.

Le but de ce billet est en fait de vous montrer sommairement comment automatiser une tâche (une commande) avec cron.

Je publierai plus tard un billet sur les différences entre les distributions de cron.

Continue reading “Comment automatiser une tâche avec CRON en utilisant Vim”

Crash Course sur les environnements Java

Je suis actuellement en mode “Documentation” et je me suis dit que le web pourrait profiter d’un résumé, en français, du Jargon de l’univers Java.

Je ne suis pas un développeur Java mais j’ai eu a administrer des serveurs pendant 4 ans, et j’en fais encore aujourd’hui. Ce document résume ma compréhension des usages. Si vous avez des suggestions ou vous voulez me corriger, dites-moi le dans les commentaires et j’ajusterai mon billet.

 

Les versions

La majeure différence entre les Java réside dans leur version et ce qui y est distribué avec. La différence majeure réside entre

  • JDK (Java Development Kit),
  • JRE (Java Runtime Environement), et finalement il existe aussi la
  • JME (Java Mobile Edition) pour les devices mobile.

C’est un peu comme une distribution Windows XP Professionnel ou Windows XP Media Centre.

Il existe plusieurs distributeurs d’environnement Java, notamment : IBM, SUN, OpenJdk. La norme et elles sont toutes basés sur la JVM de SUN Microsystems. L’inventeur de Java.

L’Avantage majeur de Java est le fait qu’il existe des distributions pour toutes les plateformes : Windows, Mac, Linux, Solaris, FreeBSD, etc.

 

Termes fréquemment utilisés

  • « JVM » (Java Virtual Machine) est en fait l’appellation utilisée pour parler de ce qui est exécuté. Ce qui est ci-haut mentionné exécutent toutes des JVM… avec des classes (jar) différentes.
  • « Jar » est en fait, grosso-modo, une archive zippée d’un dossier de classe.
  • « Class » une classe compilée Java.
  • « Container » est en fait ce qu’on appelle un Serveur applicatif. Bref, un serveur http qui roule les classes Java.
  • « J2EE » est un accronyme qui peut être vue comme une spécification technique (penser ISO) fournie par SUN pour les standards d’environnement d’exécution (« Container »).

 

Serveur Applicatif

Il en existe plusieurs. La norme avec les logiciels suivant la tendance Open-Source utilisent la version Apache du container J2EE appelé Tomcat. Atlassian utilise Tomcat dans ses version « self hosted » distribués.

Il en existe d’autres comme Glassfish de Sun Microsystem, WebObjects de Apple, Tomcat de Apache Foundation, JBoss de RedHat, WebSphere de IBM, et bien d’autres.

 

Une classe

C’est quoi?. C’est du code java compilé.

La hiérarchie est faite en fonction du « namespacing » inspiré des standards du DNS. Une classe spécifique Java pour un WebService SOAP pour traduire du français au Klingon pourrait être appelé : i.e. com.renoirboulanger.startrek.klingon.soap.jar.

 

Suggestions

Je pense avoir fait le tour du sujet. Dites-moi dans les commentaires si j’ai oublié quelque chose d’important.

 

Une VM Linux qui sert au développement PHP 5.3 avec Eclipse – partie III

Ce billet est le troisième d’une série d’articles décrivant la fabrication d’une Machine Virtuelle (VM) de développement pour une équipe de dévelopeurs.

Cette partie couvrira l’installation de Apache et de PHP 5.3 (la dernière version depuis Juin 2009) qui offre beaucoup d’avancées. Je pense que c’est devenu le juste minimum a cause de ces nouvelles fonctionnalités. Voir articles faits par IBM developerworksWhat’s new in PHP 5.3 (part 1, part 2, part 3, and part 4)“.

Continue reading “Une VM Linux qui sert au développement PHP 5.3 avec Eclipse – partie III”

Une VM Linux qui sert au développement PHP 5.3 avec Eclipse – partie II

Ce billet est le deuxième d’une série d’articles décrivant la fabrication d’une Machine Virtuelle (VM) de développement pour une équipe de dévelopeurs.

Ce billet expliquera comment j’installe un système Linux que je considère de base pour une infrastructure d’hébergement applicatif. Je ne couvrirai pas les configurations plus avancés pour améliorer la sécurité. Je risque de le faire plus tard.
Continue reading “Une VM Linux qui sert au développement PHP 5.3 avec Eclipse – partie II”

Une VM Linux qui sert au développement PHP 5.3 avec Eclipse – partie I

La Virtualisation c'est comme des roches en équilibreCe billet est le premier d’une série d’articles décrivant la fabrication d’une Machine Virtuelle (VM) de développement pour une équipe de dévelopeurs.

Je mentionne PHP 5.3 mais en fait ce type d’installation pourrait être utilisé pour n’importe quelle technologie web qui peut rouler sous Linux (Ruby on Rails, Java, Perl, etc).

J’ai séparé cette série en quatre volets.

  1. Description du concept (cet article)Ce que je vais discuter dans cette série d’articles n’est pas nécessairement connu de tous. Je vais donc vulgariser un peu avant de commencer.
  2. Installation du systèmeJe donne ici mon secret de magicien avec quelques configurations que je considère importantes pour un environement d’hébergement web pour améliorer la sécruité (le strict minimum pour cette série d’articles. Je pourrai en faire un plus poussé plus tard).
  3. Compilation de PHP 5.3Comment installer Apache 2.x avec le dernier cutting-edge PHP.
  4. Installation de l’environnement de développement avec Eclipse PDT (à venir)La magie se passe par là! Avec ce setup votre équipe pourra répliquer l’installation de développement a volonté.

Mise à jour et façon différente de fonctionner

Dans un billet plus récent (que celui-ci) j’explique comment le faire pour un Mac.

Mise en contexte

Pour développer, j’utilise depuis deux ans une machine virtuelle (VM) Linux (minimale) qui me sert de “bac à sable”… Le but de cette série d’articles. Dans cette VM il y a tout les outils nécessaires aux projets en-cours et ils sont configurés pour refléter l’environnement de production où je déploie mon travail.

Ce type d’installation est idéal car il permet d’avoir a installer les prérequis une seule fois et pouvoir les dupliquer pour tout les dévelopeurs. Sans oublier que vous n’avez plus de préoccupations de licences logicielles.

A la fin de cette série d’articles vous aurez accès a une VM qui représentera votre environement de production (ajuster à vos besoins de production, évidemment).
Continue reading “Une VM Linux qui sert au développement PHP 5.3 avec Eclipse – partie I”

Manipulation des liens extérieurs et les popup pour améliorer l’Accessibilité

En rédigeant Accessibilité et les liens externes j’ai réalisé qu’il y aurait trop de matière pour être lue dans un simple billet. Alors j’ai décidé d’aller plus en profondeur et de le documenter.

Cet article explique une méthode simple pour transformer tout les liens d’une page qui vont à l’extérieur du site courrant en ajoutant un icône approprié et la note disant qu’une fenêtre s’ouvrira

Continue reading “Manipulation des liens extérieurs et les popup pour améliorer l’Accessibilité”

Un firewall simple sous Linux avec «Ferm»

Attention: Article Technique!

Dans le but de faire profiter la postérité et ma mémoire personnelle voici mon premier post d’une série d’articles spécialisée sur Linux.

Ces articles proviennent de ma voûte documentaire professionnelle et personnelle.

Évidemment pour les publier ici je dois censurer les détails sensibles, vous me comprendrez (!)

Le fait de les avoir dans le format Wiki Markup de Confluence… et les traduire ici demande du temps pour les reformatter pour mon blogue.

D’autres articles spécialisés Debian Linux

D’autres articles technique (pour Debian Linux) seront aussi disponibles dans les prochaines semaines.

Voici une liste de quelques uns que je compte publier:

  1. Monter une machine en SNMP v2c en lecture seule
  2. Permettre des updates aux serveurs NTP a l’heure
  3. Installer VMware server 2 sur Debian
  4. Augumenter le niveau de sécurité pour Infra Publique sous Debian
  5. Procédure configuration SYSLOG-NG vers un serveur de log

J

Continue reading “Un firewall simple sous Linux avec «Ferm»”

Effacer complètement un disque dur de façon sécuritaire

Lorsqu’on se préocupe de ses informations personnelles et qu’on veut se débarrasser d’un ordinateur ou d’un vieux disque dur il faut, idéalement, le vider. J’ai une petite méthode pour le faire pas trop compliqué et totalement sécuritaire pour les données.

Ma méthode implique

  • Un disque dur qu’on veut wiper (effacer)
  • Un LiveCD de Linux
  • Du temps
  • Une tour d’ordinateur pour le processus, idéalement inutilisée… sinon où chercher ou quoi utiliser pour se «dé-s’emmerder»
    • Un lecteur CD-Rom

Attention, un peu technique… mais tellement conseillé :)

ÉTAPE UN… backups?!

C’est un peu stupide de le préciser… mais assurez-vous qu’il est vraiment vide de vos données avant de faire quoi que ce soit!

Je vous recommande DE NE PAS AVOIR D’AUTRES DISQUES D’INSTALLÉ lors de l’exécution de ce script Tant que vous exécutez pas le script a l’étape six vous ne risquez rien (!).

Continue reading “Effacer complètement un disque dur de façon sécuritaire”

Lorsque gérer un réseau peut rimer avec vigilance plutôt que réparation

Les collègues qui travaillent avec moi pour le réseau savent ce que qu’implique chaque modification dans le réseau. Nous travaillons pour remonter le réseau et atteindre un certain niveau côté qualité qui rendra notre travail plus facile pour tous.

Parmi ces améliorations, il s’agit d’un moyen de savoir si tout est correct et être averti si un changement à été opéré et même savoir “où est le bobo”.

Il s’agit du service de monitoring avec Nagios. Il ne s’agit ici pas d’un howo-to technique mais plutôt ma “review” de ce que l’installation que j’ai monté peut faire.

Continue reading “Lorsque gérer un réseau peut rimer avec vigilance plutôt que réparation”

Copier un fichier d’un serveur à l’autre en le compressant pour la route via NetCat et

J’ai voulu un jour transférer des fichiers entre deux machines et les fichiers je les trouvaient lourds. Habituellement j’aurait utilisé soit rsync ou scp mais cette fois ci je voulait utiliser un processus un peu différent. Pourquoi ne pas compresser le contenu durant le transfert? Continue reading “Copier un fichier d’un serveur à l’autre en le compressant pour la route via NetCat et”

Installer VMWare sur Ubuntu server avec le repositoire de Canonical

UPDATE 2009-08: Je prévois faire un nouvel article pour couvrir ce sujet car cette version de Ubuntu est désuète.

Personnellement, je n’utilise plus Ubuntu comme un serveur. J’utiliser Debian Linux pour mes serveurs. Ubuntu demeure mon poste de travail favori.

Je donnerai le lien du bon post une fois qu’il sera en ligne.

 

L’idée c’est d’avoir un serveur rack-mount minimal fait pour héberger les VM d’infrastructure du réseau. Actuellement plusieurs de nos serveurs *physiques* ont déjà X-Windows sur leur hôtes (SuSE v10, RHEL 4 U5, Gentoo 2007.0, Ubuntu, etc.) Mais ce sont des installations qui ont été faites avec tout ce qu’il sortait sans réfléchir ou se pencher sur l’économie de ressources. Ce serveur sera minimal coté installation, et maximisé sur VMWare… voici les étapes que j’ai fait.

Continue reading “Installer VMWare sur Ubuntu server avec le repositoire de Canonical”

Doubler la fiabilité avec un miroir MySQL, un mini-Howto

Imaginez que vous avec plusieurs sites a gérer. Sur un serveur, disons, monté en RAID-1 sur deux disques SATA en md-devices. C’est bien, les données sont dupliqués et si un disque dur brise, les données survivent. Évidemment ça ne nous protège pas des erreur de manipulation.

Une redondance comme je l’ai monté implique deux serveurs distincts qui ont chacun leur adresse ip et leur setup. Les serveurs ont deux adapteurs réseau et je les ai reliés ensemble et donné une adresse ip privé pour qu’ils puissent parler ensemble sans passer par Internet. Chaque serveur à les fichiers de sites pour chaque usager et chacun se connecte a mysql en localhost. La réplication se passe donc par l’adresse privée donc aucune encryption est nécessaire entre les peers.

Plus tard je devrai monter un service de miroirisation via rsync mais ce n’est pas le but de “ce” post.

Veuillez noter qu’il s’agit d’un howto TR√àS TECHNIQUE et je NE PEUT PAS nécessairement GARANTIR le FONCTIONNEMENT si vous faites simplement que COPIER SANS RÉFLÉCHIR.
Continue reading “Doubler la fiabilité avec un miroir MySQL, un mini-Howto”

Login ssh sans mot de passe

Voici comment générer un certificat qui sera utilisé par ssh pour se connecter à un serveur sans demander de mot de passe à l’usager.

 

 

Sur le serveur client, exécuter (dans le HOME de l’usager):

$ mkdir .ssh
$ ssh-keygen -t dsa -f .ssh/id_dsa (Ne pas spécifier de mot de passe)
$ cd .ssh
$ scp id_dsa.pub user@remote:~/.ssh/id_dsa.pub

[email protected] représente l’usager et le serveur sur lequel le client voudra se connecter par SSH sans mot de passe. Maintenant, sur le serveur remote, exécuter (avec le même usager utiliser à la commande précédente):

$ cd .ssh
$ cat id_dsa.pub >> authorized_keys2
$ chmod 640 authorized_keys2
$ rm id_dsa.pub