From 273ca39b5f990890821d4ec9269be0eec8913930 Mon Sep 17 00:00:00 2001 From: liuhuan Date: Sat, 14 May 2016 17:51:29 +0800 Subject: [PATCH] add ssh --- pom.xml | 16 ++---- .../module/admin/AdminProjectGroupUsrAct.java | 2 +- .../rekoe/ssh/PublicKeyAuthentication.java | 51 +++++++++++++++++++ src/main/java/com/rekoe/ssh/Scp.java | 29 +++++++++++ 4 files changed, 84 insertions(+), 14 deletions(-) create mode 100644 src/main/java/com/rekoe/ssh/PublicKeyAuthentication.java create mode 100644 src/main/java/com/rekoe/ssh/Scp.java diff --git a/pom.xml b/pom.xml index 15ed3d9..119d9d4 100644 --- a/pom.xml +++ b/pom.xml @@ -82,19 +82,9 @@ 2.9.1 - org.apache.shiro - shiro-ehcache - 1.2.4 - - - ehcache-core - net.sf.ehcache - - - shiro-core - org.apache.shiro - - + ch.ethz.ganymed + ganymed-ssh2 + build210 org.quartz-scheduler diff --git a/src/main/java/com/rekoe/module/admin/AdminProjectGroupUsrAct.java b/src/main/java/com/rekoe/module/admin/AdminProjectGroupUsrAct.java index 3bf0970..ef06f0d 100644 --- a/src/main/java/com/rekoe/module/admin/AdminProjectGroupUsrAct.java +++ b/src/main/java/com/rekoe/module/admin/AdminProjectGroupUsrAct.java @@ -162,7 +162,7 @@ public class AdminProjectGroupUsrAct extends BaseAction { root.put("url", url); List urlList = new ArrayList(); Cnd cnd = Cnd.where("pj", "=", project.getPj()).and("usr", "=", usr.getUsr()); - List list = projectGroupUsrService.query(cnd); + List list = projectGroupUsrService.query(cnd,null); if (Lang.isEmpty(list)) { log.errorf("Cant Not Set User %s Project %s Gruop", usr.getUsr(), project.getPj()); return; diff --git a/src/main/java/com/rekoe/ssh/PublicKeyAuthentication.java b/src/main/java/com/rekoe/ssh/PublicKeyAuthentication.java new file mode 100644 index 0000000..a3be788 --- /dev/null +++ b/src/main/java/com/rekoe/ssh/PublicKeyAuthentication.java @@ -0,0 +1,51 @@ +package com.rekoe.ssh; + +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; + +import ch.ethz.ssh2.Connection; +import ch.ethz.ssh2.ConnectionInfo; +import ch.ethz.ssh2.Session; +import ch.ethz.ssh2.StreamGobbler; + +public class PublicKeyAuthentication { + public static void main(String[] args) { + String hostname = "xxx.xxx.xxx.xxx"; + String username = "root"; + + File keyfile = new File("~/.ssh/id_dsa"); // or "~/.ssh/id_dsa" + try { + /* Create a connection instance */ + Connection conn = new Connection(hostname, 59231); + /* Now connect */ + ConnectionInfo info = conn.connect(); + System.out.println(info.keyExchangeAlgorithm); + /* Authenticate */ + boolean isAuthenticated = conn.authenticateWithPublicKey(username, keyfile, ""); + if (isAuthenticated == false) + throw new IOException("Authentication failed."); + /* Create a session */ + Session sess = conn.openSession(); + sess.execCommand("ls"); + InputStream stdout = new StreamGobbler(sess.getStdout()); + BufferedReader br = new BufferedReader(new InputStreamReader(stdout)); + System.out.println("Here is some information about the remote host:"); + while (true) { + String line = br.readLine(); + if (line == null) + break; + System.out.println(line); + } + /* Close this session */ + sess.close(); + /* Close the connection */ + conn.close(); + } catch (IOException e) { + e.printStackTrace(System.err); + System.exit(2); + } + } +} diff --git a/src/main/java/com/rekoe/ssh/Scp.java b/src/main/java/com/rekoe/ssh/Scp.java new file mode 100644 index 0000000..b7c50ac --- /dev/null +++ b/src/main/java/com/rekoe/ssh/Scp.java @@ -0,0 +1,29 @@ +package com.rekoe.ssh; + +import java.io.File; +import java.io.IOException; + +import ch.ethz.ssh2.Connection; +import ch.ethz.ssh2.SCPClient; + +public class Scp { + public static void main(String[] args) { + String hostname = "xxx.xxxx.xxxx.xxxx"; + String username = "root"; + File keyfile = new File("~/.ssh/id_dsa"); // or "" + try { + /* Create a connection instance */ + Connection conn = new Connection(hostname, 59231); + /* Now connect */ + conn.connect(); + boolean isAuthenticated = conn.authenticateWithPublicKey(username, keyfile, ""); + if (isAuthenticated == false) + throw new IOException("Authentication failed."); + /* Create a session */ + SCPClient scpClient = conn.createSCPClient(); + scpClient.put("d:/xxx.json", "/root/"); + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file