首页 > 解决方案 > 简单的 SSH 连接开源代码与 JSch

问题描述

我正在尝试从这个简单的例子中做一些事情:

SSH,用安卓执行远程命令

我试图通过简单的命令执行通过 ssh 控制我的树莓派,一切正常,除了,它不起作用!我正在尝试的命令是创建空的 text.txt,但是当我检查树莓派时,没有创建这样的文件。也试过sudo reboot命令,还是不行

这是我的主要代码:

package com.example.thesacredhaven.samplessh;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        try {
            executeRemoteCommand("pi","root","192.168.219.178",22);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void executeRemoteCommand(
            String username,
            String password,
            String hostname,
            int port) throws Exception {

        JSch jsch = new JSch();
        Session session = jsch.getSession(username, hostname, 22);
        session.setPassword(password);
        session.setConfig("StrictHostKeyChecking", "no");
        session.setTimeout(10000);
        session.connect();

        // SSH Channel
        ChannelExec channel = (ChannelExec) session.openChannel("exec");
        channel.setCommand("lsusb > /home/pi/test.txt");
        channel.connect();
        channel.disconnect();
    }
} 

我做错了什么 ?我没有错误消息,并且在我的 Linux 上看不到任何 SSH 连接。有图书馆吗?还是缺少一些步骤?

标签: androidsshclient

解决方案


推荐阅读