Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [java] connessione ssh

  1. #1

    [java] connessione ssh

    salve ragazzi

    qualcuno mi sa dire se esisto delle classi per gestire una connessione ssh?
    devo creare una utility java che mi si connetta a più nodi tramite ssh ma non saprei da dove iniziare.....

    Qualcuno mi può aiutare????

    grazie mille

  2. #2
    qualcuno può aiutarmi???????

  3. #3
    non so se poi hai risolto .. ma ti passo la mia soluzione ...
    qui puoi trovare la libreria Jsch attualmente siamo alla versione 0.1.41
    http://www.jcraft.com/jsch/

    io l'ho caricata , poi ho ammattito un po perché non ho trovato molte guide per non dire pochissime ...

    comunque poi con un pò di pazienza sono riuscito a aprire una sezione ssh e mandare comandi sulla mia macchina linux da un pc windows con interfaccia java.

    codice:
        
        public void AperturaSSH() {
            try {
                JSch jsch = new JSch();
                Session session = jsch.getSession("user", "192.168.0.190", 22);
                session.setPassword("password1234");
                UserInfo ui = new MyUserInfo();
                session.setUserInfo(ui);
                session.connect(30000);
                //System.out.toString();
                Channel channel = session.openChannel("shell");
                channel.setInputStream(System.in);
                channel.setOutputStream(System.out);
                channel.connect(3 * 1000);
            } catch (Exception e) {
                System.out.println(e);
            }
        }
    ci sto ancora lavorando .. in questo momento mi sono bloccato con l'scp e devo ancora fare il comando di logout o disconnesione

  4. #4
    ecco una versione più evoluta , chiede se accettiamo la key RSA facendola vedere in una Panello grafica e se la password non è inserita dal comando session.setPassword viene richiesta...

    è sempre in work in progres

    codice:
    import com.jcraft.jsch.*;
    import java.awt.*;
    import javax.swing.*;
    
    public class Shell{
      public static void main(){
    
        try{
          JSch jsch=new JSch();
          //jsch.setKnownHosts("/home/foo/.ssh/known_hosts");
          Session session=jsch.getSession("root","192.168.0.190", 22);
          //session.setPassword("123456");
          UserInfo ui=new MyUserInfo();
          session.setUserInfo(ui);
          session.connect(30000);
          Channel channel=session.openChannel("shell");
          channel.setInputStream(System.in);
          channel.setOutputStream(System.out);
          channel.connect(3*1000);
        }
        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 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);
        }
        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
          }
        }
      }
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.