android - 简单的 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 连接。有图书馆吗?还是缺少一些步骤?
解决方案
推荐阅读
- c++ - 递归和异步 c++ Lambda
- javascript - 在 VueJS 和 Laravel 混合中呈现错误
- typescript - 使用打字稿在猫鼬中获取所需函数的 this 值
- javascript - 嵌套对象在尝试访问其属性时变得未定义
- python - 使用 OpenCV 在 Python 中使用最小过滤器
- flutter - 为什么子底部表的状态更改会触发父小部件的重建?
- java - 了解 Java 8 Lambda 表达式
- mysql - 如何在sql数据库中使用ID获取用户名?
- ios - 为什么 Xcode Simulator 不会将 SwiftUI TextViews 呈现为与真实设备上相同的宽度
- processing - 如何让处理使用数组的一部分