2017-08-10 1 views
1

En ce moment je travaille sur un programme Java pour surveiller nos scripts UNIX. Le problème est que nous recevons un nouveau serveur la semaine prochaine et que je dois changer mon programme, afin qu'il puisse se connecter à la nouvelle machine, en utilisant JSch. Actuellement J'utilise ce moyen pour obtenir une connexion aux anciens serveurs:JSch - Problèmes avec session.connect()

JSch jsch = new JSch(); 
session = jsch.getSession(user, host); 
session.setPassword(password); 
session.setConfig("StrictHostKeyChecking", "no"); 
session.setTimeout(60000); 
session.connect(); 

Lors du test sur le nouveau serveur, je suis le problème, qu'il arrêterait à session.connect() et ne pas aller plus loin . Après quelques recherches que j'ai découvert, que la librairie JSch utilisait, était ancienne pour la nouvelle version d'OpenSSH du serveur, j'ai donc mis à jour mon JSch vers la version 0.1.54, mais même cela ne va pas tuer le problème. Actual J'essaie d'utiliser SSH-Keys pour cela, mais le problème est toujours le même, pas de stacktrace, rien. Voici le code réel j'essaie de faire courir:

String private_key = "path_to_file"; 
jsch.addIdentity(private_key); 
session = jsch.getSession(user, host, 22); 
session.setTimeout(60000); 
session.connect(); 

clés:
SSH-2 RSA

Client:
JRE 1.8.0_112<br> JSch 0.1.54

Serveur:
OpenSSH 7.2p2<br> OpenSSL 1.0.2g

Avec cette configuration sur le serveur, il travaille:
OpenSSH 6.6.1p1
OpenSSL 1.0.1f

EDIT
Ajout

java.util.Properties config = new java.util.Properties(); 
config.put("StrictHostKeyChecking", "no"); 
config.put("PreferredAuthentications", "password"); 

résolu le problème pour moi

+0

au lieu d'ajouter la résolu dans la question ajoutez votre solution dans la réponse et marquer acceptée .. – Ali786

+0

Merci, je vais marquer ma réponse demain, ne peut pas le faire maintenant. Et je garderai cela à l'esprit pour les questions futures. – StefanPG

Répondre

1

Ajout de

java.util.Properties config = new java.util.Properties(); 
config.put("StrictHostKeyChecking", "no"); 
config.put("PreferredAuthentications", "password"); 

résolu le problème pour moi