Supposons que vous fassiez du Java (ça arrive à bien des gens).Supposons même que vous souhaitiez vous connecter à un serveur en ssh (ça aussi, ça peut arriver).Supposons enfin que, pour des raisons qui n'appartiennent qu'à vous, vous deviez réellement tout faire dans du code Java.Et bien vous allez galérer.Parce que des librairies SSH gratuites en Java, il n'y en a pas des tonnes.En fait, j'en ai vu principalement deux : * Jsch * j2ssh

Dans les deux cas, il faut d'abord fouiller le werb à la recherche de sources de documentation, parce que les sites sont totalement démunis. Il faut aussi trouver des artefacts maven, ce qui est un peu plus facile (mvnbrowser, chaque jour je bénis ton nom). Mais il ne faut pas oublier de prendre une version de commons-logging, sans laquelle j2ssh ne marche pas (et on félicite le mauvais développeur qui a créé un demi-artefact maven).

Bon, vous vous en doutez, j'ai choisi j2ssh, essentiellement à cause de ce blog qui compare les écritures, et montre clairement à quel point j2ssh semble plus lisible.

 

Bien, maintenant, à titre d'exercice, supposons que vous souhaitez vous connecter en SSH, donc via une simple authentification par mot de passe (je sais, l'échange clé publique/clé privée est plus sécurisé, mais dans mon cas il s'agit d'une machine virtuelle hébergée sur mon serveur de développement et non visible de l'extérieur).

 

Et bien pour ça, voici les différentes étapes nécessaires.

 

D'abord, il faut créer une connexion, comme ça :

 

[gist https://gist.github.com/326749]

 

Une fois la connexion obtenue, on va pouvoir lui passer des commandes, ce qui implique cette petite méthode

 

[gist https://gist.github.com/326751]

 

Et avec cette petite méthode, vous pouvez "facilement" demander à votre serveur de vous exécuter du code

 

[gist https://gist.github.com/326754]

 

Et ça, ça marchera.Il m'a quand même fallu quelques jours pour arriver à ce résultat, certes élégant, mais suant à configurer.