相关疑难解决方法(0)

用于Java的SSH库

有没有人知道从Java登录SSH的好库.

java ssh ssh-tunnel

185
推荐指数
5
解决办法
25万
查看次数

如何使用Java在远程系统上运行SSH命令?

我是这类Java应用程序的新手,正在寻找一些示例代码,介绍如何使用SSH连接到远程服务器,执行命令,并使用Java作为编程语言获取输出.

java ssh command-line jsch

27
推荐指数
4
解决办法
9万
查看次数

通过JSch shell通道向服务器发送命令

我无法弄清楚如何通过JSch shell通道发送命令.

我这样做,但它不起作用:

JSch shell = new JSch();
String command = "cd home/s/src";  
Session session = shell.getSession(username, host, port);  
MyUserInfo ui = new MyUserInfo();  
ui.setPassword(password);  
session.setUserInfo(ui);  
session.connect();  

channel = session.openChannel("shell");  
fromServer = new BufferedReader(new InputStreamReader(channel.getInputStream()));  
toServer = channel.getOutputStream();
channel.connect();  
toServer.write((command + "\r\n").getBytes());
toServer.flush();
Run Code Online (Sandbox Code Playgroud)

然后我读取这样的输入:

StringBuilder builder = new StringBuilder();  

int count = 0;  
String line = "";  

while(line != null) {  
    line = fromServer.readLine();
    builder.append(line).append("\n");

    if (line.endsWith(".") || line.endsWith(">")){
        break;
    }
}  
String result = builder.toString();  
ConsoleOut.println(result);
Run Code Online (Sandbox Code Playgroud)

java ssh jsch

25
推荐指数
2
解决办法
7万
查看次数

使用Java JSch进行SFTP文件传输

这是我的代码,它在远程服务器上检索文件的内容并显示为输出.

package sshexample;

import com.jcraft.jsch.*;
import java.io.*;

public class SSHexample 
{
public static void main(String[] args) 
{
    String user = "user";
    String password = "password";
    String host = "192.168.100.103";
    int port=22;

    String remoteFile="sample.txt";

    try
    {
        JSch jsch = new JSch();
        Session session = jsch.getSession(user, host, port);
        session.setPassword(password);
        session.setConfig("StrictHostKeyChecking", "no");
        System.out.println("Establishing Connection...");
        session.connect();
        System.out.println("Connection established.");
        System.out.println("Creating SFTP Channel.");
        ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
        sftpChannel.connect();
        System.out.println("SFTP Channel created.");
        InputStream out= null;
        out= sftpChannel.get(remoteFile);
        BufferedReader br = new BufferedReader(new InputStreamReader(out));
        String line;
        while …
Run Code Online (Sandbox Code Playgroud)

java ssh sftp jsch file-transfer

24
推荐指数
3
解决办法
11万
查看次数

如何阅读JSch命令输出?

我有以下代码:

JSch jsch = new JSch();
jsch.setKnownHosts(dotSshDir + "/known_hosts");
jsch.addIdentity(dotSshDir + "/id_rsa");

Session session = jsch.getSession(userName, hostname, 22);
session.connect();

ChannelExec channel = (ChannelExec) session.openChannel("exec");
channel.setCommand(command);
channel.setInputStream(null);
channel.setErrStream(System.err);
Reader reader = new InputStreamReader(channel.getInputStream());

char[] buf = new char[1024];
int numRead;
while ((numRead = reader.read(buf)) != -1) {
    String readData = String.valueOf(buf, 0, numRead);
    result.append(readData);
    buf = new char[1024];
}
Run Code Online (Sandbox Code Playgroud)

它试图从读者那里读取.我该如何解决?我该怎么做才能找到正在发生的事情?

java ssh jsch

6
推荐指数
2
解决办法
3万
查看次数

断开连接之前先终止进程

我正在使用Jsch跟踪服务器日志。当我关闭执行通道和会话时,“ tail -f ...”进程仍在服务器端保持活动状态。

我尝试这样做,channel.sendSignal("KILL")但抛出异常: com.jcraft.jsch.JSchException: failed to send channel request

我该如何彻底断开连接?

java jsch

4
推荐指数
1
解决办法
2516
查看次数

com.jcraft.jsch.JSchException:java.net.ConnectException:连接被拒绝:连接

我明白有重复的>>>从副本中复制>>>只要您的本地机器有一台运行<<<<<的SSH服务器,但我无法发表评论,也不能从问题中解决(并且我没有提供答案. ...)

它声明"只要您的本地计算机运行SSH服务器",但我不知道如何运行SSh服务器.我打开我的腻子(双击它)(不确定这是否意味着SSH(?Putty?)服务器(?)正在运行...怀疑...

我是套接字编程的新手.我正在利用JSch(http://www.jcraft.com/jsch/)尝试连接到远程服务器(后期阶段),这是我使用的代码,我试图连接到我的本地计算机和执行命令(确切地说是ls)来进行测试.但是,我一直拒绝连接.我用谷歌搜索,我注意到有一些文章提到"有服务器监听",但我不知道它意味着什么.请查看我的代码如下.

import java.awt.event.*;

import javax.swing.*;

import java.awt.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Properties;

import com.jcraft.jsch.*;



class SwingWorkerExample {

    JTextField hostField;
    JTextField userNameField;
    JTextField passwordField;
    JPanel panel;


    public SwingWorkerExample() {
        JPanel p = panel = new JPanel(new GridLayout(0,2));
        hostField = new JTextField(20);
        userNameField = new JTextField(20);
        passwordField = new JPasswordField(20);
        JButton testButton = new JButton("connect!");
        testButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent ev) {
                    testConnectionButtonActionPerformed(ev);
                }
            });
        p.add(new JLabel("host:"));
        //127.0.0.1
        p.add(hostField);
        p.add(new JLabel("user:"));
        //mycomputerusername
        p.add(userNameField); …
Run Code Online (Sandbox Code Playgroud)

sockets jsch

2
推荐指数
1
解决办法
3万
查看次数

标签 统计

java ×6

jsch ×6

ssh ×5

command-line ×1

file-transfer ×1

sftp ×1

sockets ×1

ssh-tunnel ×1