Duvida com SSH [RESOLVIDO]

Olá Galera,

Estou com uma duvida sobre SSH no java. Estou utilizando a API ganymed-ssh2-build210.

Eu crio minha conexão:

Connection conn = new Connection(hostname);
conn.connect();

Eu abro a sessão na conexão:

this.sess = conn.openSession();

Até ai funciona tudo direitinho. Após criar a sessão eu envio o 1º comando SSH para criar um usuario no LDAP:

this.sess.execCommand("ldapadd -D 'cn=Manager,dc=teste,dc=com' -x -w 'teste' << EOF");

Aqui começa o problema, quando eu mando o segundo comando:

this.sess.execCommand("dn: uid="+cliente.getLogin()+",ou=People,dc=teste,dc=dc=com");

O código final fica assim:

this.sess.execCommand("ldapadd -D 'cn=Manager,dc=teste,dc=com' -x -w 'teste' << EOF");
this.sess.execCommand("dn: uid="+cliente.getLogin()+",ou=People,dc=teste,dc=dc=com");
....
this.sess.execCommand("EOF");

Ele me retorna um erro:

java.io.IOException: A remote execution has already started.
at ch.ethz.ssh2.Session.execCommand(Session.java:244)
at Controller.ConexaoSSH.setAddCliente(ConexaoSSH.java:101)

Falando que já tem uma execução do Command, porém eu quero mandar vários comandos na mesma sessão, porque se eu fechar a sessão o EOF não vai funcionar.

Se eu envio um comando só:

sess.execCommand("uname -a && date && uptime && who");

E finaliza a classe funciona normal, sem nenhum erro.

Alguem tem alguma dica de como funciona ? Nunca utilizei SSH no java.

VLw !

Olá,
Você poderia criar toda a sequencia de comandos em uma única string (usando um StringBuffer) e acionar o execCommand uma única vez. Separe os comandos com quebra de linha ‘\n’ ou utilize o separador de comandos do shell linux “;” ponto-e-virgula.

Abraços.

Olá ctdaa,

Obrigado pela dica !!! Funcionou, porém eu gostaria mesmo de aprender a enviar vários comandos SSH.