remoteit
is a command line interface to remot3.it.
The remot3.it API allows you to login, list devices, and request a proxy connection. You currently cannot add or edit devices using the API.
In order to use remoteit
you will need a remot3.it account. You can signup for an account at
https://app.remote.it/auth/#/sign-up.
I am in no way afflicated with remote3.it, I just happen to use it to connect to my raspberry pi and didn't want to have to hit the website everytime I needed a proxy.
remoteit
uses go modules. Building with go 1.11 should be as simple as go build -o remoteit
If you're using an earlier version of go you'll need to go get
all the dependencies in
the go.mod
file manually.
Yeah, there aren't any. I hacked this together over a few evenings which is obvious from looking at the code. It suits my purposes. Pull requests are welcome.
The following environment variables are used but can also be passed through flags or a prompt in the case of your password.
REMOTEIT_APIKEY
- the api/develop key for your remot3.it accountREMOTEIT_USERNAME
- your remot3.it usernameREMOTEIT_PASSWORD
- you guessed it
remoteit
will create the ~/.remoteit
directory upon first launch. Two files
will be stored here, login
and devices
. login
is a cache of your login token
which is good for one week. devices
contains a cache of all your devices.
login
is created and updated anytime you run the remoteit login
command. devices
is created/updated when remoteit devices
is run. You must be logged in for this
command to succeed.
To create a proxy connection, run remoteit connect
.
You must be logged in for this command to succeed.
All commands return tabular output by default. The --json
flag can be passed
to get JSON output instead.
$ remoteit login
Token Expiry Unix Expiry
----- ----------- ------
1234567890abcdef 1542507552 2018-11-17 21:19:12 -0500 EST
$ ./remoteit devices
Alias Address Service Last IP
----- ------- ------- -------
ssh-pi 00:00:00:00:00:00:00:00 SSH 127.0.0.1
The connect command can return tabular output or JSON for your to parse yourself however it has some convenience flags also.
Currently only SSH is supported but if you wanted to connect to the ssh-pi
device
as user pi
you could run the following.
$ ssh pi@$(remoteit connect ssh-pi 127.0.0.1 --format ssh)
If you want to bypass using the cached devices you can add the --nocache
flag.
If the device cache doesn't exist (because you have not run remoteit devices
) running
remoteit connect
will run as if --nocache
was passed.
If you do not specify the hostip
argument, the Last IP used to access the device
will be used, either from the cache or from a fresh API call.