Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

Java como cliente SSH

Olá amigos,
Gostaria de saber se alguem tem algum codigo de preferencia feito no netbeans para
cliente SSH
que de para usar varios conexões em abas ou alguem conhece algum programa assim…
eu uso o putty mas como trabalho com varias conexões simuntanea acontece de da um
shutdown em um servidor a 500 km de distancia ai complica tudo… ).
obrigado a todos

Cara, se estiver procurando algo para fazer SSH com Java, dá uma olhada nesses cabras:

ch.ethz.ssh2.ChannelCondition;
ch.ethz.ssh2.Connection;
ch.ethz.ssh2.Session;
ch.ethz.ssh2.StreamGobbler;

Usa-se mais ou menos assim:

package br.com.oi.gestaoambientes.connector;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;

import ch.ethz.ssh2.ChannelCondition;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;

public class SSHConector {


private Connection sshConnection;
private Session sshSession;
private String user;
private String password;
private InputStream stdout;
private InputStream stderr;
private OutputStream stdin;
private int state = 0; //0=stopped, 1=started

public SSHConector(String host, String user, String password) {


sshConnection = new Connection(host);
this.user = user;
this.password = password;
this.state = 0;
}

public void start() {


try {
sshConnection.connect();
boolean isAuthenticated =
sshConnection.authenticateWithPassword(user, password);

if (isAuthenticated == false)
throw new IOException("Authentication
failed.");

sshSession = sshConnection.openSession();
sshSession.startShell();

stdout = new
StreamGobbler(sshSession.getStdout());
stderr = new
StreamGobbler(sshSession.getStderr());
stdin = sshSession.getStdin();

read(); //consume login message

this.state = 1;

} catch (IOException e) {
// TODO Auto-generated catch block
this.state = 0;
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
this.state = 0;
e.printStackTrace();
}
}

public String read() throws IOException, InterruptedException{


BufferedReader br = new BufferedReader(new
InputStreamReader(stdout));
StringBuffer sb = new StringBuffer();
sshSession.waitForCondition(ChannelCondition.EOF,
5000);
while (br.ready())
{
String line = br.readLine();
sb.append(line + "<BR>");
}
return sb.toString();
}

public String readError() throws IOException,


InterruptedException{
BufferedReader br = new BufferedReader(new
InputStreamReader(stderr));
StringBuffer sb = new StringBuffer();
sshSession.waitForCondition(ChannelCondition.EOF,
5000);
while (br.ready())
{
String line = br.readLine();
sb.append(line + "<BR>");
}
return sb.toString();
}

public void write(String message){


PrintStream ps = new PrintStream(stdin);
ps.println(message);
ps.flush();
}
public void stop() {
sshSession.close();
sshSession.close();
this.state = 0;
}

public String execCommand(String command){


String msg = "NO_ANSWER";

if (state == 0)
start();

try {
write(command);
msg = read();

if (msg.length() <= 0)
msg = readError();

} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}

return msg;

}
}

zzzhhh
set '08

Amigo,
vc teria algum codigo ja pronto pra usa ssh?
ja agradeço a ajuda…
obrigado

celso.martins
set '08

Mais pronto do que isso?

É só usar a classe SSHConector e ser feliz.

Abraços.

zzzhhh
set '08

Deu alguns erros…


bem como falta as classes

ch.ethz.ssh2.ChannelCondition;
ch.ethz.ssh2.Connection;
ch.ethz.ssh2.Session;
ch.ethz.ssh2.StreamGobbler;

faelcavalcanti
set '08

http://www.ganymed.ethz.ch/ssh2/javadoc/overview-summary.html 32

7 anos depois

fechou em 28 dez, '15

Tópicos sugeridos

Tópico Respostas Visualizações Atividade


PF ajudem com esse js é um pouco
urgente
Java
iniciante
abr
100
'21
Não aparece os elementos no design - Java
Java
159 out '20
Problema para executar arquivo no NetBeans
Java
89 nov '20
O IReport não esta dando conexão com o servidor
Java
103 mar '21
Exercício ArrayList em Java
Java
java
57 abr '21

Quer ler mais? Veja outros tópicos em Java ou ver últimos tópicos.
Links do GUJ

 Caelum
 Alura Cursos de Tecnologia
 Livros da Casa do Código
 Alura Língua

Categorias

 Programação
 Front-end
 Mobile
 Infraestrutura
 Assuntos Gerais

Redes Sociais

 /GUJ.com.br

Imersões

Ei, dev. Se o seu foco é sua carreira, assine a newsletter Imersão, Aprendizado e
Tecnologia com insights que nosso CEO escreve toda semana

Clique aqui para se inscrever

Conheça a Alura

Cursos de Mobile

Multiplataforma, Jogos, iOS, Android

Cursos de Programação

Java, Computação, Integrações em Java, Lógica de programação

Cursos de Front-end

HTML e CSS, Frameworks MVC, JavaScript, Automação e Performance


Cursos de DevOps

Linux, Builds e versionamento, Entrega Contínua, Redes

Cursos de Design & UX

3D, Vídeo & Motion, Impressos, Fotografia

Cursos de Business

SEO, Ads, Agilidade e Scrum, UML e Processos

Cursos de Data & BI

Data Science, Excel, SQL, NoSQL

Grupo Alura

 Educação

o Caelum

o Casa do Código
 Educação Online

o Alura

o Alura Para Empresas

o Alura LATAM

o Alura Start

o MusicDot

o Alura Língua

o PM3
 Comunidade

o Hipsters ponto Tech

o Scuba Dev

o Layers ponto Tech

o Like a Boss
o Carreira sem Fronteiras

o Hipsters ponto Jobs

o GUJ
 Parceiros

o iMasters

//

You might also like