| | [Résolu]ssh | |
| | Auteur | Message |
---|
Samantha Rang: Administrateur
Nombre de messages : 1711 Emploi : Informaticienne Date d'inscription : 28/01/2005
| Sujet: [Résolu]ssh Lun 13 Juin - 11:25 | |
| Salut, Tout d'abord, je tiens à remercier Amen pour son gentil message sur la page d'accueil du forum. Ensuite, je voudrais vous parler de mon problème de connexion avec un serveur. Il s'agit de connecter l'utilisateur à un serveur Unix à partir de Windows. Avant les utilisateurs utilisaient puTTY, mnt, il faut le faire sur un programme java. J'ai trouvé ici un package java qui utilise le protocole ssh2. Dans le repertoire, on peut trouver des classes exemples utilisant ce package. La classe qui m'intéresse est Shell qui permet d'afficher une boite de dialogue où l'utilisateur saisit le hostname et affiche ensuite un shell: - Code:
-
import com.jcraft.jsch.*; import java.awt.*; import java.awt.event.*; import javax.swing.*;
import java.io.*;
public class Shell{ //public static void main(String[] arg){ public Shell() {
try{ JSch jsch=new JSch();
http://jsch.setKnownHosts("/home/foo/.ssh/known_hosts");
String host=JOptionPane.showInputDialog("Enter username@hostname", System.getProperty("user.name")+ "@localhost"); String user=host.substring(0, host.indexOf('@')); host=host.substring(host.indexOf('@')+1);
Session session=jsch.getSession(user, host, 22); http://session.setPassword("your password"); //username and password will be given via UserInfo interface. UserInfo ui=new MyUserInfo(); session.setUserInfo(ui);
http://java.util.Hashtable config=new java.util.Hashtable(); http://config.put("StrictHostKeyChecking", "no"); http://session.setConfig(config);
session.connect();
Channel channel=session.openChannel("shell");
channel.setInputStream(System.in); channel.setOutputStream(System.out);
channel.connect(); } catch(Exception e){ System.out.println(e); } }
public static class MyUserInfo implements UserInfo{ public String getPassword(){ return passwd; } public boolean promptYesNo(String str){ Object[] options={ "yes", "no" }; int foo=JOptionPane.showOptionDialog(null, str, "Warning", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]); return foo==0; } String passwd; JTextField passwordField=(JTextField)new JPasswordField(20);
public String getPassphrase(){ return null; } public boolean promptPassphrase(String message){ return true; } public boolean promptPassword(String message){ Object[] ob={passwordField}; int result= JOptionPane.showConfirmDialog(null, ob, message, JOptionPane.OK_CANCEL_OPTION); if(result==JOptionPane.OK_OPTION){ passwd=passwordField.getText(); return true; } else{ return false; } } public void showMessage(String message){ JOptionPane.showMessageDialog(null, message); } }
}
Le pb c'est que la connexion échoue alors qu'elle se fait avec succès en utilisant puTTY et j'aimerais savoir pkoi. Si quelqu'un a des idées ou si vous avez déjà rencontré ce genre de pbs, votre aide serait la bienvenue. Merci et bonne journée.
Dernière édition par le Mar 14 Juin - 16:56, édité 1 fois | |
| | | Samantha Rang: Administrateur
Nombre de messages : 1711 Emploi : Informaticienne Date d'inscription : 28/01/2005
| Sujet: Re: [Résolu]ssh Lun 13 Juin - 12:21 | |
| J'ajoutte juste que le message d'erreur est le suivant: - Citation :
- The authenticity of host 'hostname' can't be established.
DSA key fingerprint is ... Are you sure you want to ccontinue connecting? voili voilou ! | |
| | | Samantha Rang: Administrateur
Nombre de messages : 1711 Emploi : Informaticienne Date d'inscription : 28/01/2005
| Sujet: Re: [Résolu]ssh Mar 14 Juin - 16:55 | |
| Salut, J'ai posé la question sur la mailing list de Jsch et voilà ce qu'il m'ont répondu: - Citation :
- How about 'UserAuthKI.java' under 'examples'?
I guess that your remote sshd does not support password authentication, but support the Keyboard-Interactive authentication to use password based on PAM. (Ne me demandez pas de traduire ) La classe UserAuthKI.java est comme suit: - Code:
-
import com.jcraft.jsch.*; import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class UserAuthKI{ public static void main(String[] arg){ try{ JSch jsch=new JSch();
String host=JOptionPane.showInputDialog("Enter username@hostname", System.getProperty("user.name")+ "@localhost"); String user=host.substring(0, host.indexOf('@')); host=host.substring(host.indexOf('@')+1);
Session session=jsch.getSession(user, host, 22);
// username and passphrase will be given via UserInfo interface. UserInfo ui=new MyUserInfo(); session.setUserInfo(ui); session.connect();
Channel channel=session.openChannel("shell");
channel.setInputStream(System.in); channel.setOutputStream(System.out);
channel.connect();
//channel. } catch(Exception e){ System.out.println(e); } }
public static class MyUserInfo implements UserInfo, UIKeyboardInteractive{ public String getPassword(){ return passwd; } public boolean promptYesNo(String str){ Object[] options={ "yes", "no" }; int foo=JOptionPane.showOptionDialog(null, str, "Warning", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]); return foo==0; }
String passwd; JTextField passwordField=(JTextField)new JPasswordField(20); public String getPassphrase(){ return null; } public boolean promptPassphrase(String message){ return false; } public boolean promptPassword(String message){ Object[] ob={passwordField}; int result= JOptionPane.showConfirmDialog(null, ob, message, JOptionPane.OK_CANCEL_OPTION); if(result==JOptionPane.OK_OPTION){ passwd=passwordField.getText(); return true; } else{ return false; } } public void showMessage(String message){ JOptionPane.showMessageDialog(null, message); }
final GridBagConstraints gbc = new GridBagConstraints(0,0,1,1,1,1, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0,0,0,0),0,0); private Container panel; public String[] promptKeyboardInteractive(String destination, String name, String instruction, String[] prompt, boolean[] echo){ panel = new JPanel(); panel.setLayout(new GridBagLayout());
gbc.weightx = 1.0; gbc.gridwidth = GridBagConstraints.REMAINDER; gbc.gridx = 0; panel.add(new JLabel(instruction), gbc); gbc.gridy++;
gbc.gridwidth = GridBagConstraints.RELATIVE;
JTextField[] texts=new JTextField[prompt.length]; for(int i=0; i<prompt.length; i++){ gbc.fill = GridBagConstraints.NONE; gbc.gridx = 0; gbc.weightx = 1; panel.add(new JLabel(prompt[i]),gbc);
gbc.gridx = 1; gbc.fill = GridBagConstraints.HORIZONTAL; gbc.weighty = 1; if(echo[i]){ texts[i]=new JTextField(20); } else{ texts[i]=new JPasswordField(20); } panel.add(texts[i], gbc); gbc.gridy++; }
if(JOptionPane.showConfirmDialog(null, panel, destination+": "+name, JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE) ==JOptionPane.OK_OPTION){ String[] response=new String[prompt.length]; for(int i=0; i<prompt.length; i++){ response[i]=texts[i].getText(); } return response; } else{ return null; // cancel } } } }
et ça marche! | |
| | | inzaghi Nouveau Membre
Nombre de messages : 5 Age : 36 Date d'inscription : 23/03/2009
| Sujet: Re: [Résolu]ssh Mar 24 Mar - 18:26 | |
| J'ai un prob ce programme me permet de me connecter seulement mais je veux exécuter un script shell sur un serveur unix via une connexion ssh | |
| | | Abdel Rang: Administrateur
Nombre de messages : 3078 Age : 43 Emploi : Ingénieur-Chercheur Date d'inscription : 14/08/2004
| Sujet: Re: [Résolu]ssh Mer 25 Mar - 18:16 | |
| Cher Inzaghi, d'abord bienvenu sur le forum Sur la page des exemples de l'API JSch (Java Secure Channel) de jcraft il est écrit concernant la classe exemple UserAuthKI.java : - Citation :
- - UserAuthKI.java
This program will demonstrate the keyboard-interactive authentication. $ CLASSPATH=.:../build javac UserAuthKI.java $ CLASSPATH=.:../build java UserAuthKI If the remote sshd supports keyboard-interactive authentication, you will be prompted. Donc si l'authentification "clavier-interactive" réussit, tu devrais avoir la main (le prompt) pour écrire ton script shell Tu peux trouver d'autres exemples d'utilisation de l'API JSch (plus d'une vingtaine) avec leurs descriptions ici Si t'as une erreur tu peux aussi la poster pour qu'on y voit plus clair Si peux aussi poser ta question sur la mailing list de l'API JSch En espérant que ça aide | |
| | | inzaghi Nouveau Membre
Nombre de messages : 5 Age : 36 Date d'inscription : 23/03/2009
| Sujet: Re: [Résolu]ssh Mer 25 Mar - 19:15 | |
| - Abdel a écrit:
- Cher Inzaghi, d'abord bienvenu sur le forum
Sur la page des exemples de l'API JSch (Java Secure Channel) de jcraft il est écrit concernant la classe exemple UserAuthKI.java :
- Citation :
- - UserAuthKI.java
This program will demonstrate the keyboard-interactive authentication. $ CLASSPATH=.:../build javac UserAuthKI.java $ CLASSPATH=.:../build java UserAuthKI If the remote sshd supports keyboard-interactive authentication, you will be prompted. Donc si l'authentification "clavier-interactive" réussit, tu devrais avoir la main (le prompt) pour écrire ton script shell
Tu peux trouver d'autres exemples d'utilisation de l'API JSch (plus d'une vingtaine) avec leurs descriptions ici
Si t'as une erreur tu peux aussi la poster pour qu'on y voit plus clair Si peux aussi poser ta question sur la mailing list de l'API JSch
En espérant que ça aide merci bcp à toi et samantha pour cet accueil .Pour le mailing list ils ne m'ont pas répondu depuis 3 jours . j'ai trouvé aussi une autre bibliothèque en java trilead . qu'est ce que vous en pensez ? Pour le script , je veux l'écrire sur le client windows et l'éxécuter à partir du client du serveur ssh Unix . | |
| | | inzaghi Nouveau Membre
Nombre de messages : 5 Age : 36 Date d'inscription : 23/03/2009
| Sujet: Re: [Résolu]ssh Mer 1 Avr - 16:44 | |
| Salut , j'ai un autre problème d'établir une connexion SFTP entre un client windows et un serveur SFTP Unix .Pouvez vous m'aider ? | |
| | | Samantha Rang: Administrateur
Nombre de messages : 1711 Emploi : Informaticienne Date d'inscription : 28/01/2005
| Sujet: Re: [Résolu]ssh Mer 1 Avr - 18:03 | |
| inzaghi, il faudrait que tu décrives le problème. | |
| | | inzaghi Nouveau Membre
Nombre de messages : 5 Age : 36 Date d'inscription : 23/03/2009
| Sujet: Re: [Résolu]ssh Mer 1 Avr - 18:27 | |
| - Samantha a écrit:
- inzaghi, il faudrait que tu décrives le problème.
Objectif : créer un client sftp sous windows pour transférer des fichiers vers un serveur sftp unix Problème ; j'ai utiliser plusieurs bibliothèque java tels que j2ssh , trilead , jsch Mais j'en pas pu réaliser mon objectif | |
| | | inzaghi Nouveau Membre
Nombre de messages : 5 Age : 36 Date d'inscription : 23/03/2009
| Sujet: Re: [Résolu]ssh Sam 4 Avr - 2:44 | |
| Voud avez compris mon problème ? | |
| | | Contenu sponsorisé
| Sujet: Re: [Résolu]ssh | |
| |
| | | | [Résolu]ssh | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |