Pour la mise en situation, nous avons notre machine A monMacCheri et notre machine B www.informathic.com.
Nous souhaitons nous connecter depuis la machine A sur la machine B en SSH, sans préciser de mot de passe.

Pour information, le tout fonctionne grâce à l'échange entre clé publique et clé privée.
Commençons par ouvrir notre outil de ligne de commande (Terminal pour Mac OS X — Applications > Utilitaires > Terminal).
On crée une clé publique depuis la machine A :

ssh-keygen -t rsa -b 1024


L'utilitaire vous demandera où vous souhaitez enregistrer la clé. Personnellement, je laisse le chemin par défaut. Cela me permet de garder la même clé pour plusieurs machines.
Il vous demandera ensuite de rentrer une passphrase puis de la ré-écrire.

Nous allons devoir envoyer la clé générée vers la machine B. Pour cela, vous pouvez utiliser n'importe quel moyen. Pour ma part, j'utilise scp :

scp ~/.ssh/id_rsa.pub root@www.informathic.com:


Si vous avez utilisé la commande scp vous devriez vous retrouver avec un fichier id_rsa.pub dans le répertoire home de l'utilisateur que vous avez précisé dans la commande précédente. Si c'est le cas alors on peut continuer ! Sinon, bah, tapez-vous la tête contre un mur, ça peut peut-être marcher.
Maintenant que le fichier est présent sur la machine B, nous allons travailler avec cette clé toute fraîche sur la machine B.

Nous allons copier le contenu du fichier id_rsa.pub dans le fichier authorized_keys, qui doit se trouver dans le dossier ~/.ssh/ de la machine B :

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys


Si jamais le fichier authorized_keys n'existe pas au moment de lancer la commande précédente, pas de soucis, le fichier sera créé automatiquement.
Maintenant, vous pouvez tentez la commande suivante depuis la machine A :

ssh root@www.informathic.com


Si vous avez correctement suivi ce qui a été écrit, vous devriez être automatiquement connecté sans devoir préciser de mot de passe.
Si jamais vous souhaitez désactiver ce type de connexion, vous devrez éditer le fichier authorized_keys et supprimer la ou les lignes correspondant aux machines que vous souhaitez bloquer.

Je rajouterai une dernière chose. Un utilisateur sur la machine B n'ayant pas de mot de passe ne pourra jamais se connecter en utilisant la méthode classique (mot de passe requis). Cependant, en utilisant cette technique d'échange de clé, notre utilisateur pourra se connecter même s'il n'a pas de mot de passe. Il me semble important de souligner ce point.