IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Java Discussion :

TriLead port forwarding


Sujet :

Sécurité Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 6
    Par défaut TriLead port forwarding
    Bonjour a tous,
    J'utilise l'API TriLead pour creer des tunnels securisé de ma machine windows (client SSH JAVA + serveur vnc) vers ma debian (OpenSSH + client VNC web via firefox)
    J'ai donc utilisé l'exemple de base pour les remote port forward cependant lorsque j'execute le code,il ne se passe rien,pas de message d'erreur (alors qui si je met un port deja pris genre 22.je catch une erreur)
    Pourtant le tunnel n'est pas creer,il n'est pas visible si je fais
    Alors que si j'utilise putty ou que j'essay de creer un tunnel depuis un autre linux via SSH cela fonctionne...
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    this.conn = new Connection(remoteHost);
    this.conn.connect();
    this.conn.authenticateWithPublicKey(this.userName, this.keyfile, this.keyfilePass);
    this.conn.requestRemotePortForwarding("127.0.0.1",5000, "127.0.0.1", 5000); 
    or 
    this.lpf1 = conn.createLocalPortForwarder(5000,"LOCALHOST",5000);
    Si quelqu'un a deja eut ce probleme avec cette API...
    Merci

  2. #2
    Invité de passage
    Inscrit en
    Avril 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 1
    Par défaut Probleme api trilead
    Bonjour,

    je suis stagiair et je bloque sur probleme d api trilead ssh,
    j utilise l api ssh de trilead pour executer des commandes sur un unix solaris
    et je ferme une session apres chaque execution de commande .
    Apres la premiere commande executée j ai un message d'erreur :

    COULD NOT OPEN CHANNEL (THE CONNECTION IS BEING SHUTDOWN)

    voici mon code source

    PS: ce programme java fonctionne tres bien sur du HP UNIX


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
     
    package com.bnpparibas.geode.tools.ssh;
     
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
     
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Shell;
     
    import com.bnpparibas.geode.display.generic.DialogBox;
    import com.bnpparibas.geode.tools.ApplicationResources;
    import com.bnpparibas.geode.tools.config.ConfigLoader;
    import com.trilead.ssh2.Connection;
    import com.trilead.ssh2.Session;
    import com.trilead.ssh2.StreamGobbler;
     
    /**
     * Classe de gestion de la connexion ssh
     * 
     * @author Fabrice Calafat
     * 
     */
    public class SshHandler {
    	private Connection connection;
    	private Session session;
    	private boolean isConnected = false;
     
    	private String host;
     
    	public SshHandler(String host) {
    		this.host = host;
    	}
     
    	/**
             * Permet de lancer la connexion à Unix. Le mot de passe sera
             * automatiquement demandé à l'utilisateur
             * 
             */
    	public boolean connect() {
    		try {
    			boolean keyboardInteractive = false;
    			connection = new Connection(host);
    			connection.connect();
    			String user = ConfigLoader.getInstance().getParameter("user",
    					"username");
    			String[] authMethods = connection.getRemainingAuthMethods(user);
    			for (int i = 0; i < authMethods.length; i++) {
    				if (authMethods[i].equals("keyboard-interactive"))
    					keyboardInteractive = true;
    			}
    			SshUserInfo callBack = new SshUserInfo();
    			callBack.setWindowTitle(user + "@" + host);
    			if (keyboardInteractive) {
    				isConnected = connection.authenticateWithKeyboardInteractive(
    						ConfigLoader.getInstance().getParameter("user",
    								"username"), callBack);
    			} else {
    				String[] response = callBack.replyToChallenge("", "", 1,
    						new String[] { "Enter SecurId passcode" }, null);
    				isConnected = connection.authenticateWithPassword(user,
    						response[0]);
    			}
    			if (isConnected)
    				System.out.println("Connected");
    			return isConnected;
    		} catch (Exception e) {
    			Display.getDefault().asyncExec(new Runnable() {
    				public void run() {
    					Shell shell = Display.getCurrent().getActiveShell();
    					DialogBox.errorMessage(shell, ApplicationResources
    							.getInstance().getParameter("SshHandler",
    									"connectionErrorTitle"),
    							ApplicationResources.getInstance().getParameter(
    									"SshHandler", "connectionErrorMessage"));
    				}
    			});
    			return false;
    		}
    	}
     
    	/**
             * Récupère le statut de connexion
             * 
             * @return : Statut de connexion
             */
    	public synchronized boolean isConnected() {
    		return isConnected;
    	}
     
    	/**
             * Se déconnecte après confirmation de la part de l'utilisateur si confirm =
             * true
             * 
             * @param confirm :
             *            si true, demande confirmation, sinon déconnecte directement
             */
    	public synchronized boolean disconnect() {
    		connection.close();
    		System.out.println("Disconnected");
    		isConnected = false;
    		return true;
    	}
     
    	/**
             * Envoie une commande Unix et récupère le résultat
             * 
             * @param cmd :
             *            Commande Unix à effectuer
             * @return StringBuffer contenant le résultat de la commande
             */
    	public synchronized StringBuffer sendCommand(String cmd) {
    		StringBuffer result = new StringBuffer();
    		try {
    			if (isConnected()) {
    				session = connection.openSession();
    				session.execCommand(cmd);
    				System.out.println("Unix Command Sent : " + cmd);
    				InputStream stdout = new StreamGobbler(session.getStdout());
    				BufferedReader br = new BufferedReader(new InputStreamReader(
    						stdout));
    				while (true) {
    					String line = br.readLine();
    					if (line == null)
    						break;
    					result.append(line + "\n");
    				}
    			}
    //meme en utilisant des waitforcondition
    //ou bien verifier le status de sortie de l execution avec getExitstatus
    			session.close();
    		} catch (IOException io) {
    			System.out.println("Error IO: " + io.getMessage());
    			isConnected = false;
    		}
    		if (result.length() > 0)
    			result.deleteCharAt(result.length() - 1);
    		return result;
    	}
     
    }

  3. #3
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Utilise la balise code pour le code stp.

Discussions similaires

  1. Iptables port forwarding
    Par blacksnake dans le forum Sécurité
    Réponses: 2
    Dernier message: 10/03/2007, 00h09
  2. [Routeur et port forwarding] Simple curiosité
    Par daladim dans le forum Protocoles
    Réponses: 8
    Dernier message: 02/12/2006, 15h54
  3. Ipmasqadmin : problème sur le port forwarding
    Par tanjonaravelson dans le forum Réseau
    Réponses: 2
    Dernier message: 18/11/2005, 13h14
  4. Port forwarding et port triggering
    Par kap dans le forum Développement
    Réponses: 4
    Dernier message: 25/10/2005, 12h28
  5. Ports forwarding avec iptables
    Par Iced Earth dans le forum Réseau
    Réponses: 6
    Dernier message: 19/11/2002, 21h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo