Gilliek
21nov/111

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.

30sept/115

Quand on est geek …

Après être rentré chez moi, puis confortablement installé dans mon lit avec mon ordi je remarque avec horreur que j'ai oublié d'allumer le WiFi ! Comme je suis crevé (et un peu flemmard) j'ai allumé le WiFi de manière ... disons -le ... très geek 8-) Tout d'abord, j'ai transformé mon téléphone (Samsung Galaxy SII sur Android) en point d'accès WiFi (en utilisant la connexion en Edge que je captais). Je m'y connecte avec mon laptop. Ensuite, je me connecte en SSH sur mon serveur à la maison avec l'option -L (pour Local) pour rediriger le trafic du port local 80 du serveur sur mon port distant (de mon laptop). Finalement, j'ai pu accéder à la console d'administration de ma box depuis laquelle j'ai pu réactiver mon WiFi ... Ahhh qu'est-ce qu'on ne ferait pas pour éviter quelques marches à monter et à decendre :-P

Pour ceux que ça intéresse, voici la commande que j'ai utilisée (depuis Linux donc^^) :

sudo ssh -p port_ssh_server user@server_address -L port_local:server_address:80

Où :

  • port_ssh : est le port SSH utilisé sur le serveur (par défaut le port 22)
  • user : le nom d'utilisateur sur le serveur
  • server_address : l'adresse du serveur (URL ou adresse IP)
  • port_local sur lequel vous voulez rediriger le traffique (par exemple 3000)

Il vous suffit après d'accéder depuis un navigateur à l'adresse : http://localhost:3000 et vous accèderez au panneau d'administration de votre box.

Attention: pensez à vérifier que le port soit ouvert ;-)

Taggé comme: , 5 Commentaires