引用
Ganymed SSH-2 for Java is a library which implements the SSH-2 protocol in pure Java, more details http://www.ganymed.ethz.ch/ssh2/
引用
Here is a full sample for how to do UsernamePasswordInteractive Login and run scp/shell comamnd
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.KnownHosts;
import ch.ethz.ssh2.SCPClient;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;
public class SSHUtils
{
public static Connection getSSHConnection() throws IOException {
KnownHosts database = new KnownHosts();
Connection conn = new Connection("TARGET_LINUX_HOSTNAME");
String[] hostkeyAlgos = database.getPreferredServerHostkeyAlgorithmOrder("TARGET_LINUX_HOSTNAME");
if (hostkeyAlgos != null)
{
conn.setServerHostKeyAlgorithms(hostkeyAlgos);
}
conn.connect(new AdvancedVerifier());
if (conn.isAuthMethodAvailable("USERNAME", "keyboard-interactive"))
{
// login for the first time
UsernamePasswordInteractiveCallback il = new UsernamePasswordInteractiveCallback();
boolean loginSuccess = conn.authenticateWithKeyboardInteractive("USERNAME", il);
if (!loginSuccess)
{
System.out.println("login failed");
}
}
return conn;
}
public static List<String> runCommand(final Connection conn,String command) throws IOException {
//handle error stream in real case
Session sess = conn.openSession();
List<String> files = new ArrayList<String>();
sess.execCommand(command);
InputStream stdout = new StreamGobbler(sess.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
while (true)
{
String line = br.readLine();
if (line == null)
{
break;
}
if (!line.trim().isEmpty())
{
files.add(line.trim());
}
}
sess.close();
return files;
}
public static void copyFile(final Connection conn, String sourcePath, String targetPart) throws IOException {
SCPClient scpClient = conn.createSCPClient();
scpClient.get(sourcePath, targetPart);
}
}
// EOF
public class UsernamePasswordInteractiveCallback implements InteractiveCallback
{
@Override
public String[] replyToChallenge(String arg0, String arg1, int arg2, String[] arg3, boolean[] arg4)
throws Exception
{
final String[] password = new String[1];
password[0] = "Password";
return password;
}
}
class AdvancedVerifier implements ServerHostKeyVerifier
{
public boolean verifyServerHostKey(String hostname, int port, String serverHostKeyAlgorithm,
byte[] serverHostKey) throws Exception
{
return true;
}
}
分享到:
相关推荐
Java 远程连接 Linux 服务器使用 Ganymed-SSH2 库 标题解释 本文档的标题是"Java 运用 Ganymed-SSH2 库远程连接操作 Linux 服务器",这意味着我们将使用 Java 语言来远程连接 Linux 服务器,并使用 Ganymed-SSH2...
Java通过ganymed-ssh2-build210.jar库实现SSH远程连接Linux终端是一个常见的应用场景,主要用于自动化运维、系统管理或者开发过程中需要与Linux服务器交互的场景。ganymed-ssh2-build210.jar是Java的一个开源SSH库,...
ganymed-ssh2是一个开源Java库,它提供了对SSH2协议的全面支持,使得开发人员能够在Java应用程序中轻松地进行远程操作,如执行命令、传输文件等。本文将深入探讨ganymed-ssh2工具类的使用及其核心功能。 ** SSH连接...
标题中的“ganymed-ssh2-262.jar”是一个特定版本的SSH2库,由Ganymed项目提供,用于Java环境下的SSH(Secure Shell)连接。SSH是一种网络协议,常用于安全地远程登录到服务器、传输文件以及执行命令。Ganymed SSH2...
标题“ganymed-ssh2-build210”指的是一个基于Java实现的SSH(Secure Shell)库,专门用于远程管理Linux服务器。这个库是 Ganymed SSH-2 的一个特定版本,版本号为210。SSH协议允许用户通过安全加密的通道与远程主机...
解决openssh升级到8.2以后无法登录的问题,支持jdk1.5及以上版本
再者,`ganymed-ssh2-build250-examples.jar`包含了一些示例代码,这些示例展示了如何使用Ganymed SSH2库进行基本操作,如建立SSH连接、执行远程命令、SFTP文件传输等。开发者可以通过运行这些示例快速上手,为自己...
下载网站https://repo1.maven.org/maven2/ch/ethz/ganymed/ganymed-ssh2/build210/ 此jar源码文件中包含以下这些类: SCPClient.lass Session.class Connection.clss 等许多文件传输类。 查看源码的方法: 1.把此jar...
在Java环境中,开发人员通常使用库来实现SSH功能,其中一个常用的库就是Ganymed SSH-2。这个库名为ganymed-ssh2-build,它允许Java应用程序与远程服务器建立SSH连接,执行命令,传输文件等。 Ganymed SSH-2库是由...
java远程访问linux服务器操作 远程执行shll脚本或者命令、上传下载文件 package com.szkingdom.kfit.bank.ccbDirectShortcut.helper; import ch.ethz.ssh2.Connection; import ch.ethz.ssh2.SCPClient; import ...
java操作Linux-shell命令的jar文件,java语言执行 Linux-cmd命令 java操作Linux-shell命令的jar文件,java语言执行 Linux-cmd命令 java操作Linux-shell命令的jar文件,java语言执行 Linux-cmd命令 java操作Linux-shell...
java实现ssh方式连接linux(包含ganymed-ssh2-build210.jar包) ---------Java语言+绚丽的界面+仿ssh实现调用Linux的Terminal,实现远程连接linux进行命令行的操作!
ganymed-ssh2-bui.jar 是java从远程服务器下载文件删除文件必须要的jar包,直接放到系统中即可。 jad.exe 是在eclipse中用java从远程服务器下载文件时会报错,在eclipse中跑的话,需要设置路径,windows-preferences...
ganymed-ssh2 ,java支持ssh协议的jar包
这个压缩包中可能包含ganymed-ssh2的两个不同版本的构建——build250和build210,这是一个开源的Java实现SSH2协议的库。SSH2是SSH协议的第二版,提供了更强大的加密和身份验证机制,广泛应用于Linux系统中。 描述中...
Ganymed SSH-2 for Java是用纯Java实现SSH-2协议的一个包。可以利用它直接在Java程序中连接SSH服务器。Ganymed SSH-2支持SSH对话(远程命令执行和shell访问),本地和远程端口转发,本地数据流转发,X11转发和SCP。这些...
使用ganymed-ssh2-build210.jar从远程服务器拉取文件到本地,或上传文件到指定服务器下的目录。个人略微修改了jar包的内容,解决了文件名中带空格时报错的问题,可以下载名字中带空格的文件。