Accès SSH

Comment mettre en place une authentification par échange de clés

Principe

Pour pouvoir mettre en place une authentification pas SSH, il y a deux principales étapes :

  • La génération de votre clès (privée et public)
  • L'échange de votre clés public avec le serveur pour qu'il vous reconnaisse

 

Génération de la clé

Sachez qu'officiellement vous devez remettre au autorités votre clef si elle fait plus de 1024 bits
Comprennez qu'il leur est diffichile de la déchiffré eux même si elle est plus grosse.
Vous pouvez ajouter une passphrase à votre clès, il s'agit d'un mot de passe pour déchriffer la clés. Ici nous voulons accèder aux serveurs sans avoir à taper de mot de passe donc n'en mettrons pas. Ca peu être utile pour des accès VPN plus senssible mais comme ils restent connectés la passphrase est moins contraignante. Ici elle fait 2048bits et elle est de type RSA :

ssh-keygen -t rsa -b 2048

Un fois que vous avez donné toutes les informations vous trouverez vos clès dans le dossier ~/.ssh (par défaut id_rsa et id_rsa.pub pour la clé public).
Il faut ensuite envoyez votre clef public sur le serveur pour qu'il sache que c'est vous.

Echange de clés

Sur la machine locale vous avez un fichier .ssh/know_hosts qui contient les clés public des serveurs aux quels vous avez déjà accéder. Ce qui permet de controller si leur clès à changé de vous avertir si c'est le cas.
Sur la machine distante c'est le fichier ~/.ssh/autorized_keys qui est important, ou ~ correspond au dossier home de l'utilisateur distant. C'est lui qui contient les clés qui authorisés pour la connection à avec cette utilisateur.

ssh-copy-id -i ~/.ssh/id_dsa.pub distuser@your.host.com

Il faut que l'utilisateur distant au quel vous envoyé votre clès ais un mot de passe car lors de l'envoie il vous sera demandé. SSH peux être configurer pour ne pas autorisé les connections par mots de passe mais lors de l'échange il l'authorise. Si votre utilisateur distant n'as pas de mot de passe, vous devrez copier manuellement le contenu de ~/.ssh/id_rsa.pub dans le fichier ~/.ssh/autorized_keys de la machine distante.