moSHquitto is a Shell that works over MQTT protocol. This tool might come handy when there is no direct SSH connection with the remote device.
MQTT is very reliable, has very low overhead and automatically connects when the internet connection is available.
- The client script requires
- The console application is written using
client/mqttshell.lua in remote machine and make sure that it runs always. Say the mac address of the device is
aa:bb:cc:dd:ee:ff, so remote machine will listen for data on topic
Anything published to this topic will be executed, for example
ls -l / is a valid command.
DO NOT ENTER COMMANDS LIKE
nano /etc/issue. This will make the remote application crash. To recover from such situation, do reboot the machine.
To get results from remote machine, subscribe to
shell/aa:bb:cc:dd:ee:ff/result. Upon the execution of valid command, stdout buffer will be posted to this topic.
For easier console-like feelings, run
console/app.py and put a mac address of the desired remote machine. Note that remote machine must run the instance of
mqttshell.lua and should have valid mac address.
I know it's not safe. May be you can use TLS Authentication for the clients. This project is a simple proof-of-concept one. Use it with your own risk.
- Cannot use commands that requires writing channel because it is not possible to write to process.
- Found one? Post in the Issues.