Skip to content

Latest commit

 

History

History
87 lines (70 loc) · 4.18 KB

远程登录.md

File metadata and controls

87 lines (70 loc) · 4.18 KB

远程登录

远程登录简介

物联网通信平台为方便设备端进行远程运维,支持正常ssh指令操作,实现内网穿透,对无公网IP的设备提供ssh远程登录功能。

远程登录 Topic

  • 订阅消息Topic: $sys/operation/result/${productid}/${devicename} 用于订阅云端下发(下行)请求消息。
  • 请求消息Topic: $sys/operation/${productID}/${deviceName} 用于发布(上行)请求消息。

运行示例程序体验远程登录功能

1 在设备运行的系统上开启 ssh 服务

如Mac OS系统上运行实例程序,打开终端,输入命令 'sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist' ,无错误提示说明开启 ssh服务 成功

输入 'sudo launchctl list | grep sshd' 查看 SSH 服务 是否已运行。

    (base) w@W-MB0 ~ % sudo launchctl list | grep sshd
    Password:
    -	0	com.openssh.sshd    //显示该行内容为ssh服务已经在运行了

您也可在Mac OS系统的 系统偏好设置 --> 共享 --> 远程登录 ,查看 远程登录状态为打开, ssh服务 已开启 。

如您需要关闭 ssh服务,可在终端中, 输入命令 'sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist' ,无错误提示说明关闭 ssh服务 成功。

您也可在Mac OS系统的 系统偏好设置 --> 共享 --> 远程登录 ,查看 远程登录状态为关闭, ssh服务 已关闭 。

2 填写认证连接设备的参数 示例中编辑 unit_test_config.json 文件中的参数配置信息

{
  "TESTMQTTSAMPLE_PRODUCT_ID":           "",
  "TESTMQTTSAMPLE_DEVICE_NAME":          "",
  "TESTMQTTSAMPLE_DEVICE_PSK":           "",
}

MqttSshSampleTest.java 中,配置 ssh服务 的IP及端口号,Mac OS 系统开启的 ssh服务 默认IP为127.0.0.1,端口号为22

{
    // ssh 要访问的IP
    private static String sshHost = "127.0.0.1";
    // ssh 端口号 sshd服务一般默认端口22
    private static int sshPort = 22;
}

3 运行示例程序

运行 MqttSshSampleTest.java 的main函数,使设备上线。示例代码如下:

public static void main(String[] args) {
    connect();
    try {
        while(true) {
            Thread.sleep(5000);
        }
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

private static void connect() {
    ...
    mqttconnection = new TXMqttConnection(mBrokerURL, mProductID, mDevName, mDevPSK,null,null ,true, new SelfMqttLogCallBack(), new callBack(), null, sshHost, sshPort);
    mqttconnection.connect(options, null);
}

观察Logcat日志:

    2022/04/01 06:57:09 INFO  TXMqttConnection info 133  - Start connecting to tcp://87PULDPUHE.iotcloud.tencentdevices.com:1883
    2022/04/01 06:57:09 INFO  TXMqttConnection info 133  - onConnectCompleted, status[OK], reconnect[false], userContext[], msg[connected to tcp://87PULDPUHE.iotcloud.tencentdevices.com:1883]
    2022/04/01 06:57:09 INFO  TXMqttLogImpl info 133  - Starting subscribe topic: $sys/operation/result/87PULDPUHE/device01
    2022/04/01 06:57:09 DEBUG TXMqttLogImpl debug 145  - onSubscribeCompleted, status[OK], topics[[$sys/operation/result/87PULDPUHE/device01]], userContext[], errMsg[subscribe success]

以上是设备已上线,并成功订阅ssh所需要监听的Topic 的日志

4 在腾讯云物联网通信平台控制台上操作远程登录

产品列表 --> 选择示例代码中配置的设备对应的产品 --> 设备列表 --> 选择示例代码中配置的设备 --> 在线调试 --> 远程登录 --> 开启远程SSH登录 --> 查询开启状态 --> 登录 --> 输入当前开启的 ssh服务 的管理员账号以及密码(即Mac OS系统中用户与群组对应的管理员账号以及密码) --> 登录 --> 即可操作对应ssh指令