android - How to connect to a SSH server using JSCH? -
i trying connect open ssh ubuntu server using jsch want see if can connect android phone linux server using ssh doesn't work. when launch app on android phone app crashes have attached code , logcat file new java , eclipse
here code
package com.example.please; import java.util.properties; import com.jcraft.jsch.jsch; import com.jcraft.jsch.jschexception; import com.jcraft.jsch.session; import android.os.asynctask; import android.os.bundle; import android.app.activity; import android.content.context; import android.view.menu; import android.widget.button; import android.widget.edittext; public class mainactivity extends activity { button button; edittext usr_nm; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); system.out.println("working"); button=(button) findviewbyid(r.id.btn); //button.setonclicklistener(handle); usr_nm = (edittext)findviewbyid(r.id.edittext1); string host="x.x.x.x"; new loadsomestuff().execute(host); } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.main, menu); return true; } public class loadsomestuff extends asynctask<string, integer, string>{ string asd; @override protected string doinbackground(string... arg0) { jsch jsch=new jsch(); properties props = new properties(); props.put("stricthostkeychecking", "no"); properties config = new properties(); config.put("stricthostkeychecking", "no"); config.put("compression.s2c", "zlib,none"); config.put("compression.c2s", "zlib,none"); session session; try { session = jsch.getsession("user", "x.x.x.x",22); session.setconfig(config); session.setpassword("xxxxxxx"); session.connect(); } catch (jschexception e) { asd = "not_executed"; system.out.println("not_executed"); e.printstacktrace(); return "not_executed"; } context context = getapplicationcontext(); charsequence text = "connected pi"; int duration = android.widget.toast.length_short; android.widget.toast toast = android.widget.toast.maketext(context, text, duration); toast.show(); system.out.println("executed"); asd = "executed"; return "executed"; //return null; } @override protected void onpostexecute(string abc){ usr_nm.settext(asd); } } }
the logcat shows following
07-31 16:21:53.298: e/trace(781): error opening trace file: no such file or directory (2) 07-31 16:21:53.858: i/system.out(781): working 07-31 16:21:54.028: i/choreographer(781): skipped 38 frames! application may doing work on main thread. 07-31 16:21:54.078: d/gralloc_goldfish(781): emulator without gpu emulation detected. 07-31 16:21:54.177: i/choreographer(781): skipped 46 frames! application may doing work on main thread. 07-31 16:21:54.547: i/system.out(781): not_executed 07-31 16:21:54.547: w/system.err(781): com.jcraft.jsch.jschexception: java.net.socketexception: socket failed: eacces (permission denied) 07-31 16:21:54.557: w/system.err(781): @ com.jcraft.jsch.util.createsocket(util.java:344) 07-31 16:21:54.557: w/system.err(781): @ com.jcraft.jsch.session.connect(session.java:215) 07-31 16:21:54.557: w/system.err(781): @ com.jcraft.jsch.session.connect(session.java:183) 07-31 16:21:54.557: w/system.err(781): @ com.example.please.mainactivity$loadsomestuff.doinbackground(mainactivity.java:64) 07-31 16:21:54.557: w/system.err(781): @ com.example.please.mainactivity$loadsomestuff.doinbackground(mainactivity.java:1) 07-31 16:21:54.557: w/system.err(781): @ android.os.asynctask$2.call(asynctask.java:287) 07-31 16:21:54.557: w/system.err(781): @ java.util.concurrent.futuretask.run(futuretask.java:234) 07-31 16:21:54.567: w/system.err(781): @ android.os.asynctask$serialexecutor$1.run(asynctask.java:230) 07-31 16:21:54.567: w/system.err(781): @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1080) 07-31 16:21:54.577: w/system.err(781): @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:573) 07-31 16:21:54.577: w/system.err(781): @ java.lang.thread.run(thread.java:856) 07-31 16:21:54.577: w/system.err(781): caused by: java.net.socketexception: socket failed: eacces (permission denied) 07-31 16:21:54.577: w/system.err(781): @ libcore.io.iobridge.socket(iobridge.java:583) 07-31 16:21:54.588: w/system.err(781): @ java.net.plainsocketimpl.create(plainsocketimpl.java:201) 07-31 16:21:54.588: w/system.err(781): @ java.net.socket.startupsocket(socket.java:559) 07-31 16:21:54.588: w/system.err(781): @ java.net.socket.tryalladdresses(socket.java:127) 07-31 16:21:54.588: w/system.err(781): @ java.net.socket.<init>(socket.java:177) 07-31 16:21:54.588: w/system.err(781): @ java.net.socket.<init>(socket.java:149) 07-31 16:21:54.598: w/system.err(781): @ com.jcraft.jsch.util.createsocket(util.java:338) 07-31 16:21:54.608: w/system.err(781): ... 10 more 07-31 16:21:54.608: w/system.err(781): caused by: libcore.io.errnoexception: socket failed: eacces (permission denied) 07-31 16:21:54.618: w/system.err(781): @ libcore.io.posix.socket(native method) 07-31 16:21:54.618: w/system.err(781): @ libcore.io.blockguardos.socket(blockguardos.java:181) 07-31 16:21:54.618: w/system.err(781): @ libcore.io.iobridge.socket(iobridge.java:568) 07-31 16:21:54.618: w/system.err(781): ... 16 more
please help
your application must have following permission in androidmanifest.xml
:
<uses-permission android:name="android.permission.internet"/>
Comments
Post a Comment