1, 建立一个maven工程,引入JSch
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>omg</groupId>
<artifactId>omg</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.50</version>
</dependency>
</dependencies>
</project>
2. code
package omg;
import com.jcraft.jsch.*;
import javax.swing.*;
import java.io.*;
public class Shell {
private static InputStream in = null;
public static void main(String[] arg) {
try {
JSch jsch = new JSch();
Session session = jsch.getSession("xxx", "150.236.223.66", 22);
String passwd = "xxxx###";
session.setPassword(passwd);
UserInfo ui = new MyUserInfo() {
public void showMessage(String message) {
JOptionPane.showMessageDialog(null, message);
}
public boolean promptYesNo(String message) {
return true;
}
};
session.setUserInfo(ui);
session.connect(30000);
Channel channel = session.openChannel("shell");
((ChannelShell) channel).setPty(false);
in = channel.getInputStream();
OutputStream out = channel.getOutputStream();
String command = "ls \n";
channel.connect(3 * 1000);
out.write(command.getBytes());
out.flush();
ReadThread readThread = new ReadThread();
readThread.start();
} catch (Exception e) {
System.out.println(e);
}
}
public static abstract class MyUserInfo implements UserInfo,
UIKeyboardInteractive {
public String getPassword() {
return null;
}
public boolean promptYesNo(String str) {
return false;
}
public String getPassphrase() {
return null;
}
public boolean promptPassphrase(String message) {
return false;
}
public boolean promptPassword(String message) {
return false;
}
public void showMessage(String message) {
}
public String[] promptKeyboardInteractive(String destination,
String name, String instruction, String[] prompt, boolean[] echo) {
return null;
}
}
private static class ReadThread extends Thread {
@Override
public void run() {
while (true) {
try {
int i = 0;
while ((i = in.read()) != -1) {
char c = (char) i;
System.out.print(c);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
分享到:
相关推荐
### SSH协议连接远程服务器的Java实现 #### 一、引言 在计算机网络领域中,SSH(Secure Shell)协议是一种广泛使用的网络安全协议,用于在不安全的网络上提供安全的远程登录服务。本文将深入探讨如何使用Java语言来...
在Java开发中,SSH通常指的是使用Java实现的SSH连接库,如JSch,它允许程序员通过Java代码来实现SSH连接到远程服务器,进行文件传输、命令执行等操作。 本工程名为"SSH连接远程服务器的一个简单的工程",它提供了...
SSH Secure Shell客户端工具允许用户连接到远程服务器,执行命令,管理文件,甚至进行图形界面操作。 对于远程工作和协作,SSH工具扮演着核心角色。例如,开发者可以使用SSH连接到服务器进行代码部署、调试或故障...
Trilead SSH2库提供了对ssh连接的支持,包括连接远程服务器、执行命令、上传和下载文件等操作。通过使用Trilead SSH2库,可以实现远程服务器文件的操作。 3. 实现远程服务器文件的上传、下载、复制、移动、删除等...
首先,我们需要建立连接,使用 Connection 对象来连接远程服务器。然后,我们需要使用 authenticateWithPassword 方法来进行身份验证。接下来,我们可以使用 SCP 客户端来传输文件,例如从本地复制文件到远程目录。 ...
本教程将详细介绍如何使用Java通过SSH2框架连接到远程服务器。 一、JSch库的使用 JSch是一个纯Java实现的SSH2库,它允许开发者执行命令、传输文件、建立端口转发等。首先,你需要将JSch库添加到你的项目依赖中。...
Java使用JSCH(Java Secure Channel)库连接远程服务器是一个常见的任务,特别是在自动化运维、文件传输或者执行远程命令等场景中。JSCH是一个纯Java实现的SSH2库,它提供了连接到支持SSH协议的服务器的能力,如...
本文将深入探讨如何使用一个可以自定义参数的Ssh2连接池来实现高效、安全的远程服务器管理。 首先,我们需要理解SSH(Secure Shell)协议。SSH是一种网络协议,用于安全地在不安全的网络上执行命令和传输数据。Ssh2...
ssh工具 用于连接远程服务器 linux 系统 解压 安装即可使用
Java通过ganymed-ssh2-build210.jar库实现SSH远程连接Linux终端是一个常见的应用场景,主要用于自动化运维、系统管理或者开发过程中需要与Linux服务器交互的场景。ganymed-ssh2-build210.jar是Java的一个开源SSH库,...
本文将详细介绍如何使用Java实现对远程服务器的Telnet、SSH(Secure Shell)和FTP(File Transfer Protocol)连接。 1. **Java连接Telnet** Telnet是一种协议,允许用户通过网络在远程主机上执行命令。在Java中,...
2. 进入到.ssh目录,将公钥导入到授权列表(authorized_keys)中,以完成对远程服务器的公钥认证。 3. 配置文件权限,一般设置为600,确保安全。 4. 在Java中,通过JSch库连接到SFTP服务器时,需要先建立一个JSch...
Ganymed SSH-2 for Java是用纯Java实现SSH-2协议的一个包。可以利用它直接在Java程序中连接SSH服务器。Ganymed SSH-2支持SSH对话(远程命令执行和shell访问),本地和远程...该资源是java远程连接ssh服务器的实例代码。
在这个例子中,我们创建了一个SSH连接,执行了`ls -l`命令,获取并打印了远程服务器目录的列表。 Linux进程管理是系统管理员的基本任务之一。在Linux中,可以使用`ps`、`top`、`pgrep`等命令来查看和管理进程。例如...
学习使用J2SSH库可以让你的Java应用具备SSH连接能力,这对于自动化任务、远程管理系统非常有用。 总之,SSH连接到服务器执行指令是IT运维和开发人员的基本技能之一,涉及到网络通信安全、服务器管理等多个领域。...
本文将详细介绍如何使用Java进行远程连接Oracle数据库,并针对过程中可能出现的问题提供解决方案。 #### 二、准备工作 在开始编写代码之前,确保以下步骤已经完成: 1. **安装Oracle客户端**:如果你的系统上没有...
### JMeter通过SSH连接远程数据库解决方案 #### 项目背景与需求分析 在当前项目中,存在三台机器:远程数据库服务器、跳板机以及客户端。其中远程数据库服务器的IP地址为192.168.125.130,跳板机的IP地址为192.168...
SSH连接数据库的方式通常是通过建立一个SSH隧道,将本地端口映射到远程服务器上的某个端口,从而实现对远程数据库的安全访问。这种方式可以绕过防火墙限制,保护数据库连接免受窃听和中间人攻击。 对于MySQL数据库...
当用户尝试连接远程服务器时,SSH会验证客户端的身份,如果认证成功,就会建立一个加密的通道,允许用户像直接坐在远程机器前一样进行操作。 在Linux系统中,常用的SSH工具包括`ssh`命令行工具和图形化的终端模拟器...
标题 "Java读取远程主机文件" 涉及的核心知识点主要集中在Java远程操作技术,特别是使用SSH(Secure Shell)协议来实现对远程主机的文件访问。在这个场景中,开发人员可能需要从远程服务器上下载文件或者实时读取...