Android实现SSH Client

本文实现的是如何使用JSCH在Android上实现一个简易版本的ssh client,来远程执行ssh命令。

1、启动ssh服务,本文以mac为例。

打开设置-->共享-->选择远程登录

2、检验ssh server是否开启成功。

     打开shell

    ssh dongxuli@ip

    输入dongxuli账户的密码,没有报错即为开始ssh server成功。

3、下载jsch.jar:jsch-0.1.55.jar包_jsch-0.1.55.jar-Linux文档类资源-CSDN下载

 4、新建Android项目并导入jsch-0.1.55.jar

5、Android源码实现ssh命令的执行:


class SSHTest {
    fun test(){
        Thread {
            val jsch = JSch()
            try {
                //ssh登录连接的用户名和ip
                val session = jsch.getSession("dongxuli", "192.168.31.123");
                //ssh登录连接的密码
                session.setPassword("123456");
                val config = java.util.Properties();
                config.put("StrictHostKeyChecking", "no");
                session.setConfig(config);
                session.connect()
                val channelExec = session.openChannel("exec") as ChannelExec
                channelExec.setCommand("ls -l /Users/xxx \n")
                channelExec.connect()
               val  inputStreamReader = BufferedReader(InputStreamReader(channelExec.inputStream))
                val errInputStreamReader = BufferedReader(InputStreamReader(channelExec.errStream))
                val runLog = StringBuilder("")
                val errLog = StringBuilder("")
                var line: String? = null
                while (inputStreamReader.readLine().also { line = it } != null) {
                    runLog.append(line).append("\n")
                }
                var errLine: String? = null
                while (errInputStreamReader.readLine().also { errLine = it } != null) {
                    errLog.append(errLine).append("\n")
                }

                Log.d("gggl" , runLog.toString())
                Log.d("gggl" , errLog.toString())
            } catch ( e : Exception) {
                e.printStackTrace();
            }
        }.start()
    }
}

执行test后会输出/User/xxx目录下的文件列表:

 

本例中使用的是ChannelExec,每次只能执行一条命令。如果想要执行多条命令,请使用ChannelShell。

ChannelExec channelExec = (ChannelExec) session.openChannel("exec");//只能执行一条指令(也可执行符合指令)
ChannelShell channelShell = (ChannelShell) session.openChannel("shell");//可执行多条指令 不过需要输入输出流

1. ChannelExec

  每个命令之间用 ; 隔开。说明:各命令的执行给果,不会影响其它命令的执行。换句话说,各个命令都会执行,但不保证每个命令都执行成功。
每个命令之间用 && 隔开。说明:若前面的命令执行成功,才会去执行后面的命令。这样可以保证所有的命令执行完毕后,执行过程都是成功的。

每个命令之间用 || 隔开。说明:|| 是或的意思,只有前面的命令执行失败后才去执行下一条命令,直到执行成功一条命令为止。

2. ChannelShell

  对于ChannelShell,以输入流的形式,可执行多条指令,这就像在本地计算机上使用交互式shell(它通常用于:交互式使用)。如要要想停止,有两种方式:

  发送一个exit命令,告诉程序本次交互结束;
  使用字节流中的available方法,来获取数据的总大小,然后循环去读。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Bitvise SSH客户端安装步骤: 1. 首先,从Bitvise官网下载安装程序。 2. 运行安装程序,选择安装语言和安装路径。 3. 在安装向导中,选择“Typical”或“Full”安装类型。 4. 安装完成后,启动Bitvise SSH客户端。 5. 在“Quick Connect”窗口中输入SSH服务器的IP地址、端口号、用户名和密码,点击“Connect”按钮。 6. 如果连接成功,就可以在Bitvise SSH客户端中执行命令或上传下载文件了。 7. 如果连接失败,可以检查SSH服务器的配置和网络连接,或者联系管理员寻求帮助。 ### 回答2: Bitvise SSH Client是一款用于Windows操作系统的SSH客户端软件。安装Bitvise SSH Client只需简单的几个步骤。 首先,我们需要在Bitvise SSH Client的官方网站上下载安装包。可以通过搜索引擎找到官方网站,并在其下载页面中选择适用于您的操作系统版本的安装包进行下载。 下载完成后,打开安装包,启动安装程序。在安装过程中,按照提示逐步进行。 首先,选择安装语言,一般默认为英语。然后,点击“下一步”继续。 接下来,阅读软件授权协议,并接受协议条款。然后,点击“下一步”。 在安装类型选择页面,选择“完全安装”,以便安装Bitvise SSH Client的全部功能。然后,点击“下一步”。 在下一个页面,选择Bitvise SSH Client要被安装在的目标文件夹。一般情况下,建议使用默认的目标文件夹。然后,点击“下一步”。 在选择开始菜单文件夹页面,选择是否创建一个用于启动Bitvise SSH Client的程序快捷方式。然后,点击“下一步”。 接下来,选择是否要创建桌面快捷方式。然后,点击“下一步”。 在准备安装页面,确认安装设置是否正确。然后,点击“安装”。 稍等片刻,Bitvise SSH Client的安装程序将自动完成安装过程。 最后,点击“完成”按钮完全安装Bitvise SSH Client。同时,您可以选择在安装完成后启动该程序。 现在,您已经成功安装了Bitvise SSH Client。您可以通过双击启动该程序来使用它。在使用前,请确保您有正确的SSH连接信息,并按照软件的操作指南进行相应的设置和登录。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值