Letöltöttem egy "ganymed-ssh2" nevű fejlesztést.
Netbeansben JAVA SE alatt ezt a csomagot használva fel is tudtam építeni egy SSH kapcsolatot sőt parancsot is tudtam küldeni SSH-n keresztül a Linux szerveremnek.
Ugyan ezt a csomagot beimportáltam az Eclipse-be és a netbeansben megírt néhány sort is átmásoltam az adott java fileba.
maga a program lefut, az importálás is működik, semmi hibaüzenet, csak éppen a netbeans-el ellentétben a program nem csinál semmit :( mit ronthatok el?
a forráskód:
package klient;
import ch.ethz.ssh2.*;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Klient
{
private Connection conn;
private Session sess;
private String ipcim="192.168.0.1";
private int port=22;
private String OUTcommand;
private String username="root";
private String password="password";
public static void main(String[] args)
{
new Klient().run(args);
}
private void run(String[] args)
{
try {
conn = new Connection(ipcim, port);
conn.connect();
conn.authenticateWithPassword(username, password);
OUTcommand="mkdir /home/xyz";
sess=conn.openSession();
sess.execCommand(OUTcommand);
sess.close();
conn.close();
} catch (IOException ex) {
Logger.getLogger(Klient.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Ez működik. Létre is jön az xyz nevű könyvtár a /home könyvtárban.
Androidos kódom így néz ki:
package ssh.test;
import java.io.IOException;
import android.app.Activity;
import android.os.Bundle;
import ch.ethz.ssh2.*;
public class SshtestActivity extends Activity {
private Connection conn;
private Session sess;
private String ipcim="192.168.0.1",username="root",password="password";
private int port=22;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
conn = new Connection(ipcim,port);
conn.connect();
conn.authenticateWithPassword(username,password);
sess=conn.openSession();
sess.execCommand("mkdir /home/wwx");
sess.close();
conn.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Megköszönném ha valaki tudna segíteni, én már szenvedek vele egy ideje de semmi. :(
- 3123 megtekintés
Hozzászólások
Nézd meg debugger alatt lépegetve, hogy mi történik. Ez a "ganymed-ssh2" cucc elég réginek tűnik, nem egy aktív fejlesztés, könnyen lehet, hogy szimplán nem működik androidon. Ha már mindenképpen ssh-t akarsz kipróbálhatnád a jsch-t is.
- A hozzászóláshoz be kell jelentkezni
JSch-t ajánlották már :) tényleg nagyon jó és összetett fejlesztés
belenéztem az osztályokba és eléggé bonyolult volt amit láttam :)
nekem viszont az egyszerűség a lényeg
kell egy SSH kapcsolat a linux szerveremmel
parancsokat fogok küldeni és a választ szeretném fogadni :) ennyi
és én a ganymed-et találtam logikusabbnak és egyszerűbbnek
remélem hogy amit tud az nekem elég lesz bőven :)
- A hozzászóláshoz be kell jelentkezni
Az AndroidManifest.xml-be fel van veve az INTERNET permission?
Udv:
Happy
- A hozzászóláshoz be kell jelentkezni
Király! működik! Örök hála! :D
- A hozzászóláshoz be kell jelentkezni
Android alatt altalaban a ConnectBot szolgaltatasat szoktak igenybevenni SSH kapcsolat kezelesehez. Eleg nagy tudasu program, ugy tudom, eleg jo szolgaltatast is publikal. Erdemesebb lenne inkabb azt hasznalni, mert ahova SSH kliens kell, oda szinte mindig ezt ajanljak. Fejlett kulcskezelese is van.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
köszi! nem ismerem, de majd belenézek :)
- A hozzászóláshoz be kell jelentkezni
Ezt én is merem ajánlani!
- A hozzászóláshoz be kell jelentkezni