我是靠谱客的博主 精明棒棒糖,最近开发中收集的这篇文章主要介绍java ssh 密钥_ssh java类的连接与远程命令执行(包括密钥连接),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ssh java类的连接与远程命令执行(包括密钥连接)

2015/4/12 9:36:01  qnzhl  程序员俱乐部  我要评论(0)

摘要:sshjava类的连接与远程命令执行(包括密钥连接)首先先介绍ssh的密钥连接(lunix):例:10.196.20.4(user1/1234)服务器建立--?10.196.21.130(user2/1234)服务器的密钥连接1.在10.196.20.4服务器上生产公密钥文件ssh-keygen–tdsa###在$home/.ssh文件下会生成id_dsa.pub和id_dsa文件chmod–R700/home/user1/.sshchmod–R600/home/user1/

ssh java类的连接与远程命令执行(包括密钥连接)

首先先介绍ssh的密钥连接(lunix):

例:10.196.20.4(user1/1234)服务器建立--? 10.196.21.130(user2/1234)服务器的密钥连接

1.在10.196.20.4服务器上生产公密钥文件

ssh-keygen –t dsa   ###在$home/.ssh文件下会生成id_dsa.pub 和id_dsa文件

chmod –R 700 /home/user1/.ssh

chmod –R 600 /home/user1/.ssh/authorized_keys

scp id_dsa.pub user2@10.196.21.130:/home/user2/.ssh/id_dsa.pub  ###复制公钥到21.130

ssh dsam@10.196.21.130  ##输入密码

cd /home/dsadm/.ssh

cat id_dsa.pub >> authorized_keys

chmod –R 700 /home/user2/.ssh

chmod –R 600 /home/user2/.ssh/authorized_keys

exit  ##退出21.130 进入20.4

ssh user2@10.196.21.130  ##进行连接测试

以上20.4中的id_dsa 就是密钥文件,可以放在任何服务器上密钥连接21.130

使用:ganymed-ssh-2-build260.jar

package com.zgs.util;

import java.io.BufferedReader;

import java.io.File;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.util.List;

import ch.ethz.ssh2.Connection;

import ch.ethz.ssh2.Session;

import ch.ethz.ssh2.StreamGobbler;

/**

*

* @author Administrator

* 2015-4-11

*

*/

public class SSHConnect {

private String hostName;

private String userName;

private String password;

private int port;

private File  pemFile;

Connection conn=null;

/**

* @param hostName

* @param userName

* @param password

*/

public SSHConnect(String hostName, String userName, String password) {

super();

this.hostName = hostName;

this.userName = userName;

this.password = password;

}

public boolean passConnect()throws Exception{

conn=new Connection(hostName);

conn.connect();

boolean isAuthenticated =conn.authenticateWithPassword(userName, password);

return isAuthenticated;

}

public boolean publicKeyConnect()throws Exception{

conn=new Connection(hostName);

conn.connect();

boolean isAuthenticated =conn.authenticateWithPublicKey(userName,pemFile, password);

return isAuthenticated;

}

public List execCommand(String command){

try {

if(!passConnect()){

if(!publicKeyConnect()){

throw new Exception("连接配置有问题哟!");

}

}

Session session=conn.openSession();

session.execCommand(command);

InputStream stdout=new StreamGobbler(session.getStdout());

BufferedReader br=new BufferedReader(new InputStreamReader(stdout));

List list=null;

String line;

while((line=br.readLine())!=null){

list.add(line);

}

return list;

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return null;

}

}

最后

以上就是精明棒棒糖为你收集整理的java ssh 密钥_ssh java类的连接与远程命令执行(包括密钥连接)的全部内容,希望文章能够帮你解决java ssh 密钥_ssh java类的连接与远程命令执行(包括密钥连接)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(78)

评论列表共有 0 条评论

立即
投稿
返回
顶部