Java连接Linux服务器过程分析(附代码)

这篇文章主要介绍了Java连接Linux服务器过程分析(附代码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

pom文件添加依赖

<!-- https://mvnrepository.com/artifact/ch.ethz.ganymed/ganymed-ssh2 -->
<dependency>
  <groupId>ch.ethz.ganymed</groupId>
  <artifactId>ganymed-ssh2</artifactId>
  <version>build210</version>
</dependency>

一、服务器登陆公钥秘钥设置

步骤如下:

1、本机生成私钥公钥文件

本机进入到.ssh目录下,c:/Users/zhufengyan/.ssh, 在该目录下执行

$ ssh-keygen -t rsa

然后一路回车即可。

说明:如果原先./ssh目录下有id_rsa id_rsa.pub这两个文件,以上的一路回车操作会生成新的id_rsa id_rsa.pub来覆盖原来的key文件。

2、将本地生成的公钥信息放到服务器

将本地生成的公钥信息放置到需要访问的服务器,操作如下:

本地获取公钥信息,复制信息

Xshell登录服务器,加入你有root权限,

Cd /root/.ssh

Vi authorized_keys

将以上复制的内容粘贴到文件尾部。Ok完成。

说明:假设你的服务器上没有authorized_keys这个文件,那么就自己创建一个,创建完后将公钥信息粘贴到这个文件中,保存,还需要进行授权,chmod 600 authorized_keys。

另外:ssh公钥生效需满足至少下面两个条件:
1 .ssh目录的权限必须是700;
2 .ssh/authorized_keys文件权限必须是600;

二、连接服务器

步骤如下

1、 将私钥文件放到项目的resources目录下

则代码中访问的路径是

private String privateKeypath = "src/main/resources/sshkey/id_rsa";

2、 代码实现连接服务器

/**
 * 建立与服务器的连接
 * @param host 服务器IP String host = "192.168.178.1";
 * @param port 端口  int port = 22;(默认的,直接用即可)
 * @param userName 登录服务器的用户名(work)
 * @param password 登录服务器的密码(为空就行)
 * @param privateKeyFile 与服务器公钥对应的私钥文件 String pubkeypath = "src/main/resources/sshkey/id_rsa";
 * @return 返回登录的连接, 在使用的最后一定记得关闭connect资源
 * @throws IOException
 */
 public static Connection getSSHConnection(String host, int port, String userName, String password, String privateKeyFile) throws IOException {
  Connection connection = new Connection(host, port);
  connection.connect();
  File file = new File(privateKeyFile);
  boolean b = connection.authenticateWithPublicKey(userName, file, password);
  if (b){
    return connection;
  }else {
    System.out.println("登录连接失败,请检查用户名、密码、私钥文件");
    return null;
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • linux上配置jdk时,java命令提示没有此文件或文件夹的解决方法

    出现这个问题可能有以下几种原因: 1.对该文件没有执行的权限. 2.我们的机器是64位的,而下载的jdk是32位的. 我就是后一种原因造成的,好久才想明白. 以上这篇linux上配置jdk时,java命令提示没有此文件或文件夹的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Java远程连接Linux服务器并执行命令及上传文件功能

    最近再开发中遇到需要将文件上传到Linux服务器上,至此整理代码笔记. 此种连接方法中有考虑到并发问题,在进行创建FTP连接的时候将每一个连接对象存放至 ThreadLocal<Ftp> 中以确保每个线程之间对FTP的打开与关闭互不影响. package com.test.utils; import java.io.BufferedInputStream; import java.io.File; import java.io.FileFilter; import java.io.FileIn

  • linux系统 java环境变量的配置方法

    配置java环境变量 这里是将环境变量配置在etc/profile,即为所有用户配置JDK环境. sudo vi /etc/profile 配置环境变量(注意jdk位置) #set java env export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_171 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOM

  • Linux下Java环境变量的安装与配置

    安装 以JDK1.6.0_43为例 下载jdk-6u43-linux-x64.bin,http://www.oracle.com/technetwork/java/javase/downloads/index.html 增加可执行权限 chmod +x jdk-6u43-linux-x64.bin, 执行 ./jdk-6u43-linux-x64.bin 生成目录jdk1.6.0_43 拷贝到/usr/share下,mv jdk1.6.0_43 /usr/share 另外,jdk-6u43-li

  • Linux下用java -jar运行可执行jar包的方法教程

    问题来源 一般来说,一个稍微大些的项目都会有一些依赖的Jar包,而在将项目部署到服务器的过程中,如果没有持续集成环境的话,也就是说服务器不支持在线编译及打包,那么需要自己上传依赖的Jar包,然而可能服务器上已经存在了该项目所依赖的Jar包(比如项目修复BUG,重新打包上传,而依赖不变),无需再次上传,此时只需将该项目单独打包,在运行的时候指定CLASSPATH即可. 在将Jar包部署到服务器上之后,设置CLASSPATH环境变量,运行Java -jar ...命令出现ClassNotFoundE

  • Linux下执行java程序的方法

    想要在Ubuntu上运行java程序,可以将java程序编译成功后打包,然后在Ubuntu上用命令执行jar文件 具体操作如下: 1.Windows上使用eclipse编译java工程,编译完成后导出为Runnable JAR File 例如,此处将test工程中的Test2文件export为MyTest2.jar文件 2.Ubuntu上java环境安装 ①jdk官网http://www.oracle.com/technetwork/java/javase/downloads/jdk8-down

  • 详解在LINUX上部署带有JAR包的JAVA项目

    在LINUX上部署带有JAR包的JAVA项目 首先eclipse上要装上一个小插件,叫做Fat Jar 点击Fat Jar 红框里选上主类点击Next 如图把勾打上 在该路径下找到jar包 通过ftp协议把jar包放在linux服务器下 进入到jar包路径 输入指令 java -jar XXX.jar 运行成功! 注意!!!!!!!!!!!!!!!! 当你断开服务器连接时,工程会停止! 所以要用下面的指令 指令:nohup java -jar XXX.jar 通过指令ps -ef | grep

  • Linux服务器部署JavaWeb项目完整教程

    本文大部分参考网上其他教程,是实际操作后回过头来的一些总结,希望可以对正在部署项目的你有所帮助. 基本环境:Centos7.tomcat8.jdk8,MySQL5.6.nginx 安装JDK yum install java-1.8.0-openjdk* -y 使用yum安装,无需配置系统环境,执行完这条命令后JDK就安装好了. 安装Mysql 我们这里使用Mysql,如果使用MariaDB ,一般云服务器有安装,只需要升级就可以. 安装步骤: # wget http://dev.mysql.c

  • Java连接Linux服务器过程分析(附代码)

    这篇文章主要介绍了Java连接Linux服务器过程分析(附代码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 pom文件添加依赖 <!-- https://mvnrepository.com/artifact/ch.ethz.ganymed/ganymed-ssh2 --> <dependency> <groupId>ch.ethz.ganymed</groupId> <artifactId>

  • python和shell监控linux服务器的详细代码

    本文实例为大家分享了python和shell监控linux服务器的具体代码,供大家参考,具体内容如下 1. shell监控负载 监控原理:使用uptime来获取负载的信息,然后通过字符串截取的方式来获取load值来获取单个核心的负载,在将负载与阈值比较确定是否报警. loard_monitor.sh脚本: #!/bin/bash #使用uptime命令监控linux系统负载变化 #提取本服务器的IP地址信息 IP=`ifconfig eth0 | grep "inet addr" |

  • Java实现FTP服务器功能实例代码

    FTP(File Transfer Protocol 文件传输协议)是Internet 上用来传送文件的协议.在Internet上通过FTP 服务器可以进行文件的上传(Upload)或下载(Download).FTP是实时联机服务,在使用它之前必须是具有该服务的一个用户(用户名和口令),工作时客户端必须先登录到作为服务器一方的计算机上,用户登录后可以进行文件搜索和文件传送等有关操作,如改变当前工作目录.列文件目录.设置传输参数及传送文件等.使用FTP可以传送所有类型的文件,如文本文件.二进制可执

  • java实现memcache服务器的示例代码

    什么是Memcache? Memcache集群环境下缓存解决方案 Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等.简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度. Memcache是danga的一个项目,最早是LiveJournal 服务的,最初为了加速 LiveJournal 访问速度而开发的,后来被很多大型的网站采用. Memcached是以守

  • java获取linux服务器上的IP操作

    在编码过程中需要获取本地IP地址,首先使用的是下面的方法,在Windows环境正常,但是linux服务器上就获取不到, public static String getIpAddress() { String hostAddress = ""; try { InetAddress address = InetAddress.getLocalHost(); hostAddress = address.getHostAddress(); } catch (UnknownHostExcept

  • 分享一段php获取linux服务器状态的代码

    简单的php获取linux服务器状态的代码,不多说-直接上函数: 复制代码 代码如下: function get_used_status(){  $fp = popen('top -b -n 2 | grep -E "^(Cpu|Mem|Tasks)"',"r");//获取某一时刻系统cpu和内存使用情况  $rs = "";  while(!feof($fp)){   $rs .= fread($fp,1024);  }  pclose($fp

  • Java连接postgresql数据库的示例代码

    本文介绍了Java连接postgresql数据库的示例代码,分享给大家,具体如下: 1.下载驱动jar 下载地址:https://jdbc.postgresql.org/download.html 2.导入jar包 新建lib文件夹,将下载的jar驱动包拖到文件夹中. 将jar驱动包添加到Libraries 3.程序代码如下:HelloWorld.java package test; import java.sql.Connection; import java.sql.DriverManage

  • 使用xshell连接linux服务器

    使用xshell连接linux的好处 我们可以直接在windows环境下操作linux 只不过没有界面而已 输入命令都OK,而且xshell也可以很方便的把文件从window传到linux那一边 接下来,要介绍连接的情况了 linux下,查看ip地址 首先linux系统要连网,连网了才有ip地址 通过命令查看ip地址 ifconfig 从结果中找到ip地址,然后复制,用于xshell的连接 windows下使用xshell连接 打开xshell 文件>新建 可以弹出一个新的会话 xshell连接

  • java连接sql server 2008数据库代码

    Java连接SQLServer 2008数据库的步骤: 1.到微软官方下载jdbc 并解压,得到sqljdbc.jar和sqljdbc4.jar,由于使用的是JDK1.7,所以使用sqljdbc4.jar, 2.复制文件sqljdbc4.jar到jdk目录\jdk1.7.0\jre\lib\ext下. 配置系统变量classpath 变量路径 D:\Java\jdk1.7.0\jre\lib\ext\sqljdbc4.jar 测试程序: 复制代码 代码如下: import java.sql.*;

随机推荐