Gilliek
21nov/112

Astuce Android : Authentification SSH avec une clef publique

(article un peu technique)

Si comme moi vous avez des serveurs sur lesquels vous voulez vous authentifier depuis votre smartphone Android, ce post est pour vous ;-)

Les prérequis pour cette astuce :

  • Un serveur disposant d'un serveur SSH (au début, votre serveur SSH devra autoriser les connexions par mot de passe. Une fois la clé ajoutée, je vous conseille d'y désactiver)
  • D'un téléphone sous Android (ou d'une tablette)

Voilà le problème : Comment s'authentifier sur son serveur via SSH avec une paire de clés privée/publique depuis Android ?

La solution est assez simple. C'est ce que nous allons voir ici :

  1. Depuis l'Android Market, téléchargez l'application Connect Bot
  2. Lancez l'application puis allez dans le menu > Gérer les clés publiques
  3. De nouveau, allez dans le menu > Générer
  4. Choisissez un pseudo pour identifier votre clé, le type et une passphrase, puis cliquez sur "Générer"
  5. Pour renforcer l'aléatoire, bougez votre doigt de manière aléatoire sur la surface indiquée
  6. Une fois la clé générée, laissez votre doigt appuyé dessus jusqu'à ce que le menu apparaisse.
  7. Choisissez "Copier la clé publique"
  8. Revenez en arrière et connectez-vous sur votre serveur.
  9. Une fois connecté, il nous faut ajouter votre clé sur le serveur. Pour cela, saisiseez la commande suivante :
echo "votre_clé" >> .ssh/authorized_keys

votre_clé est votre clé publique que vous devez coller à l'aide de menu > coller

Ensuite, il ne vous reste plus qu'à vous connecter depuis Connect Bot en allant dans menu > Gérer les clés publique . Puis, cliquez sur votre clé et entrez la passphrase saisie à la génération de la clé. Une fois cela fait, il ne vous reste plus qu'à vous connecter normalement sur votre serveur ;-)

J'ai testé cette astuce depuis un Samsung Galaxy SII sous Android 2.3.3, mais en principe ça devrait fonctionner avec n'importe quelle version d'Android pour autant qu'elle dispose de la dernière version de l'application Connect Bot.

Merci quand même à ceux qui testeraient cette astuce de mettre un commentaire avec le modèle du téléphone et la version d'Android utilisée et si tout fonctionne :-)

Il y a aussi des clients SFTP (pour le transfert des fichiers) tels que AndFTP et FtpCafé qui devraient gérer l'authentification par clé, mais je n'ai pas encore testé. Cela fera sans doute l'objet d'un futur post.