`
江城明月再战江湖
  • 浏览: 1748 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Java用ssh连接远程服务器

    博客分类:
  • Java
 
阅读更多
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协议连接远程服务器的Java实现 #### 一、引言 在计算机网络领域中,SSH(Secure Shell)协议是一种广泛使用的网络安全协议,用于在不安全的网络上提供安全的远程登录服务。本文将深入探讨如何使用Java语言来...

    SSH连接远程服务器的一个简单的工程

    在Java开发中,SSH通常指的是使用Java实现的SSH连接库,如JSch,它允许程序员通过Java代码来实现SSH连接到远程服务器,进行文件传输、命令执行等操作。 本工程名为"SSH连接远程服务器的一个简单的工程",它提供了...

    linux java web SSH 工具 远程

    SSH Secure Shell客户端工具允许用户连接到远程服务器,执行命令,管理文件,甚至进行图形界面操作。 对于远程工作和协作,SSH工具扮演着核心角色。例如,开发者可以使用SSH连接到服务器进行代码部署、调试或故障...

    JAVA代码实现远程操作服务器文件

    Trilead SSH2库提供了对ssh连接的支持,包括连接远程服务器、执行命令、上传和下载文件等操作。通过使用Trilead SSH2库,可以实现远程服务器文件的操作。 3. 实现远程服务器文件的上传、下载、复制、移动、删除等...

    Java运用ganymed-ssh2-build210.jar包远程连接操作linux服务器

    首先,我们需要建立连接,使用 Connection 对象来连接远程服务器。然后,我们需要使用 authenticateWithPassword 方法来进行身份验证。接下来,我们可以使用 SCP 客户端来传输文件,例如从本地复制文件到远程目录。 ...

    SSH2 java连接远程服务器框架

    本教程将详细介绍如何使用Java通过SSH2框架连接到远程服务器。 一、JSch库的使用 JSch是一个纯Java实现的SSH2库,它允许开发者执行命令、传输文件、建立端口转发等。首先,你需要将JSch库添加到你的项目依赖中。...

    java使用JSCH进行连接远程服务器Demo

    Java使用JSCH(Java Secure Channel)库连接远程服务器是一个常见的任务,特别是在自动化运维、文件传输或者执行远程命令等场景中。JSCH是一个纯Java实现的SSH2库,它提供了连接到支持SSH协议的服务器的能力,如...

    这是一个可以自定义参数的使用Ssh2连接远程服务器的连接池

    本文将深入探讨如何使用一个可以自定义参数的Ssh2连接池来实现高效、安全的远程服务器管理。 首先,我们需要理解SSH(Secure Shell)协议。SSH是一种网络协议,用于安全地在不安全的网络上执行命令和传输数据。Ssh2...

    ssh 远程连接Linux工具

    ssh工具 用于连接远程服务器 linux 系统 解压 安装即可使用

    Java(通过ganymed-ssh2-build210.jar)实现SSH远程连接linux终端

    Java通过ganymed-ssh2-build210.jar库实现SSH远程连接Linux终端是一个常见的应用场景,主要用于自动化运维、系统管理或者开发过程中需要与Linux服务器交互的场景。ganymed-ssh2-build210.jar是Java的一个开源SSH库,...

    java远程telnet ftp和ssh连接的方法

    本文将详细介绍如何使用Java实现对远程服务器的Telnet、SSH(Secure Shell)和FTP(File Transfer Protocol)连接。 1. **Java连接Telnet** Telnet是一种协议,允许用户通过网络在远程主机上执行命令。在Java中,...

    详解Java使用Jsch与sftp服务器实现ssh免密登录

    2. 进入到.ssh目录,将公钥导入到授权列表(authorized_keys)中,以完成对远程服务器的公钥认证。 3. 配置文件权限,一般设置为600,确保安全。 4. 在Java中,通过JSch库连接到SFTP服务器时,需要先建立一个JSch...

    ganymed-ssh2 远程连接java实例代码

    Ganymed SSH-2 for Java是用纯Java实现SSH-2协议的一个包。可以利用它直接在Java程序中连接SSH服务器。Ganymed SSH-2支持SSH对话(远程命令执行和shell访问),本地和远程...该资源是java远程连接ssh服务器的实例代码。

    java远程连接ssh

    在这个例子中,我们创建了一个SSH连接,执行了`ls -l`命令,获取并打印了远程服务器目录的列表。 Linux进程管理是系统管理员的基本任务之一。在Linux中,可以使用`ps`、`top`、`pgrep`等命令来查看和管理进程。例如...

    通过Ssh协议连接到服务器执行执行的指令

    学习使用J2SSH库可以让你的Java应用具备SSH连接能力,这对于自动化任务、远程管理系统非常有用。 总之,SSH连接到服务器执行指令是IT运维和开发人员的基本技能之一,涉及到网络通信安全、服务器管理等多个领域。...

    java远程连接oracle详细教程

    本文将详细介绍如何使用Java进行远程连接Oracle数据库,并针对过程中可能出现的问题提供解决方案。 #### 二、准备工作 在开始编写代码之前,确保以下步骤已经完成: 1. **安装Oracle客户端**:如果你的系统上没有...

    Jmeter解决SSH连接数据库

    ### JMeter通过SSH连接远程数据库解决方案 #### 项目背景与需求分析 在当前项目中,存在三台机器:远程数据库服务器、跳板机以及客户端。其中远程数据库服务器的IP地址为192.168.125.130,跳板机的IP地址为192.168...

    SSH连接数据库所需jar

    SSH连接数据库的方式通常是通过建立一个SSH隧道,将本地端口映射到远程服务器上的某个端口,从而实现对远程数据库的安全访问。这种方式可以绕过防火墙限制,保护数据库连接免受窃听和中间人攻击。 对于MySQL数据库...

    7.linux远程连接工具类 SSH

    当用户尝试连接远程服务器时,SSH会验证客户端的身份,如果认证成功,就会建立一个加密的通道,允许用户像直接坐在远程机器前一样进行操作。 在Linux系统中,常用的SSH工具包括`ssh`命令行工具和图形化的终端模拟器...

    Java读取远程主机文件

    标题 "Java读取远程主机文件" 涉及的核心知识点主要集中在Java远程操作技术,特别是使用SSH(Secure Shell)协议来实现对远程主机的文件访问。在这个场景中,开发人员可能需要从远程服务器上下载文件或者实时读取...

Global site tag (gtag.js) - Google Analytics