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 !