Hi,
I have written the following code to establish connection to the remote unix machine which works fine. How I retrieve a particular file from that system.

Code:
package my.userauthki;

import com.jcraft.jsch.*;
import java.awt.*;
import javax.swing.*;

public class UserAuthKI {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try{
		      JSch jsch=new JSch();

		      String host=null;
		      if(args.length>0){
		        host=args[0];
		      }
		      else{
		        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();
		    }
		    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){
		/*
		//System.out.println("promptKeyboardInteractive");
		System.out.println("destination: "+destination);
		System.out.println("name: "+name);
		System.out.println("instruction: "+instruction);
		System.out.println("prompt.length: "+prompt.length);
		System.out.println("prompt: "+prompt[0]);
		*/
		      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
		      }
		    }

	}

}