{{error}}
{{(quickSearchResults.length>10)?'10+':(quickSearchResults.length)}} {{(quickSearchResults.length==1)?'result':'results'}}
{{result.title}} {{result.timeStamp | mysql2ymd }}
I am sorry, no such article was written yet.
SSH URL connection protocol implementation in Java for stateless calls
SSH URL connection protocol implementation in Java for stateless calls
Handler.java
package sun.net.www.protocol.ssh;
import java.io.IOException;
import java.net.Proxy;
import java.net.URL;
import java.net.UnknownHostException;

public class Handler extends java.net.URLStreamHandler{
	@Override protected URLConnection openConnection(URL u) throws UnknownHostException, IOException {
		URLConnection result=new URLConnection(u);
		return result;
	}

	@Override
	protected URLConnection openConnection(URL u, Proxy p)
			throws UnknownHostException, IOException {
		URLConnection result = new URLConnection(u);
		return result;
	}
}
URLConnection.java
package sun.net.www.protocol.ssh;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.UnknownHostException;

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

public class URLConnection extends java.net.URLConnection {
	private Session session;

	protected URLConnection(URL url$) throws UnknownHostException, IOException {
		super(url$);
		String userInfo = url$.getUserInfo();
		if (userInfo == null)
			userInfo = ":";
		if (userInfo.length() == 0)
			userInfo = ":";
		String[] userPass = url$.getUserInfo().split("\\:");
		try {
			Connection connection = new Connection(url$.getHost(), url$
					.getPort(), userPass[0], userPass[1]);
			session = connection.openSession();
		} catch (Throwable t) {
			throw new IOException("Failed to connect to ssh://" + userPass[0]
					+ "@" + url$.getHost() + ":" + url$.getPort());
		}
	}

	@Override
	public void connect() {
		try {
			session.execCommand(getURL().getQuery());
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	@Override
	public InputStream getInputStream() {
		return session.getStdout();
	}

	@Override
	public OutputStream getOutputStream() {
		return session.getStdin();
	}

	public InputStream getErrorStream() {
		return session.getStderr();
	}
}
usage.java
URL url = new URL(
				"ssh://user:password@host?ksh -c ls");
		URLConnection c=url.openConnection();
		c.connect();
		InputStream is=c.getInputStream();
		for(;;) {
			int i=is.read();
			if(i<0)break;
//			System.out.print((char)i);
		}