¿Cómo puedo conectarme a un servidor SSH en Java? No necesito/quiero un caparazón. Solo quiero conectarme al servidor SSH y obtener el contenido de, digamos, file.txt
. ¿Cómo puedo hacer eso?Conexión SSH con Java
Respuesta
Java no soporta de forma nativa que, pero se puede utilizar una biblioteca como JSch hacerlo
Tome un vistazo a Jaramiko.
Debe utilizar una biblioteca de terceros - JSch es uno de ellos. Google con "Java ssh
" y obtendrá muchas otras opciones.
Puede marcar JSSH, que es una biblioteca Java SSH.
http://www.ganymed.ethz.ch/ssh2/ implementa un cliente ssh2 en Java. Lo uso para el reenvío de puertos.
Uso JSch
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import java.io.*;
/**
*
* @author World
*/
public class SSHReadFile
{
public static void main(String args[])
{
String user = "john";
String password = "mypassword";
String host = "192.168.100.23";
int port=22;
String remoteFile="/home/john/test.txt";
try
{
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
System.out.println("Establishing Connection...");
session.connect();
System.out.println("Connection established.");
System.out.println("Crating SFTP Channel.");
ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
sftpChannel.connect();
System.out.println("SFTP Channel created.");
InputStream out= null;
out= sftpChannel.get(remoteFile);
BufferedReader br = new BufferedReader(new InputStreamReader(out));
String line;
while ((line = br.readLine()) != null)
System.out.println(line);
br.close();
}
catch(Exception e){System.err.print(e);}
}
}
de salida:
Establishing Connection...
Connection established.
Crating SFTP Channel.
SFTP Channel created.
This is content from file /home/john/test.txt
La gran respuesta funcionó para mí, pero solo haga Asegúrese de cerrar todo lo que abra. session.disconnect y sftpChannel.quit. –
Al invocar al constructor se lanza la siguiente excepción: 'GRAVE: JSF1073: se ha interceptado javax.faces.event.AbortProcessingException durante el procesamiento de INVOKE_APPLICATION 5: UIComponent-ClientId = tipoMovimientoGrid: j_idt15, Mensaje = java.lang.ClassCircularityError: com/jcraft/jsch/JSchException java.lang.ClassCircularityError: com/jcraft/jsch/JSchException \t en javax.faces.event.MethodExpressionActionListener.processAction (MethodExpressionActionListener.java:178) ' – Mauro
conseguir el error al intentar conectar con el servidor de windows: com.jcraft.jsch.JSchException: java.net.ConnectException: conexión rechazada: connect –
He utilizado este y trabajé para mí
Channel channel=session.openChannel("exec");
String command = "Your Command here";
((ChannelExec)channel).setCommand(command);
InputStream in=channel.getInputStream();
((ChannelExec)channel).setErrStream(System.err);
channel.connect();
- 1. Conexión SSH con Python 3.0
- 2. ¿Cómo hacer una conexión ssh con python?
- 3. SSH Connection Java
- 4. Conexión ssh remota desde Emacs
- 5. java.sql.Extensión de conexión para SSH
- 6. primitiva conexión ssh (nivel bajo)
- 7. Ejecutando comandos sobre ssh con Java
- 8. SSH Java-library para Android?
- 9. ipython:% pegar por la conexión ssh
- 10. SSH túnel para Python MySQLdb conexión
- 11. ssh conexión localhost cerrada por 127.0.0.1?
- 12. Pexpect - Silencio Salida de conexión ssh
- 13. Conexión de Firebird con java
- 14. ¿Cómo establecer fácilmente una conexión SSH en Qt?
- 15. Túnel SSH simple en Java
- 16. ¿Cómo transferir un archivo al servidor ssh en una conexión ssh hecha por paramiko?
- 17. Problema de conexión Db2 con java
- 18. En Netbeans, ¿puede hacer conexión SSH para proyectos PHP?
- 19. Conexión SSH a MySQL usando la biblioteca SSH.NET
- 20. Problemas con Amazon SSH pero no con otros SSH
- 21. SSH en la aplicación Java con funcionalidad 'esperar'
- 22. Conexión SVN + SSH que genera el error 210002, conexión de red cerrada inesperadamente
- 23. ¿Cómo crear un script bash para verificar la conexión SSH?
- 24. ssh detiene la conexión en "debug1: SSH2_MSG_KEXINIT enviado"
- 25. Establecer el tiempo de espera de conexión SSH
- 26. Conexión a SoftHSM java
- 27. Java Authenticator por conexión?
- 28. Java detectar conexión perdida
- 29. ¿Es posible abrir un túnel SSH usando Java?
- 30. Creación de una clave SSH con ssh-keygen no crea la carpeta .ssh
Yo prefiero la gente no utiliza Ganymed puesto que ya no es mantenido. – timonti
@timonti porque usted era el mantenedor? –
"Tenga en cuenta: ETH Zurich ya no mantiene el código. Visite el siguiente sitio web, code.google.com/p/ganymed-ssh-2/, en caso de que necesite actualizaciones" –