macchina.io REMOTE Connect (remote-connect)

April 6, 2026 ยท View on GitHub

remote-connect is a command-line program that sets up a TCP connection from your local machine (e.g., your PC, Mac, etc.) to a device connected to the macchina.io REMOTE server. The connection is then exposed via standard input/output. This enables remote-connect to be used in a similar way to netcat (nc).

Additionally, remote-connect can be used with the ProxyCommand configuration directive of OpenSSH, enabling an alternative way of connecting to a remote device via SSH in addition to the remote-ssh command.

An interesting use case is using remote-connect with Visual Studio Code's Remote-SSH feature to do remote development on a device connected to the macchina.io REMOTE server.

Running remote-connect

remote-connect usually does not need a configuration file, most parameters can be passed via command-line arguments. Some settings can be set using a configuration file (see the remote-client documentation for more information on configuration files).

At startup, remote-connect will look for a configuration file named .remote-connect.properties or .remote-client.properties in the current user's home directory, and read it if it's present.

To run remote-connect, you'll need to specify the host name of the remote device to connect to, as well as the port number, e.g. 8ba57423-ec1a-4f31-992f-a66c240cbfa0.remote.macchina.io:22.

Username and password or an authentication token for the macchina.io REMOTE server must be either passed via command-line options, via a configuration file or remote-login, or via environment variables REMOTE_USERNAME and REMOTE_PASSWORD. remote-connect will not prompt for username and password, and will fail to connect if username and password are not specified. The recommended way to authenticate remote-connect is by using remote-login.

Example:

remote-connect -u johndoe -p s3cr3t 8ba57423-ec1a-4f31-992f-a66c240cbfa0.remote.macchina.io:80

The above command connects to port 80 (web server) of the target device. It's then possible to send a HTTP request to the device via standard input.

Using remote-connect with OpenSSH

The OpenSSH ProxyCommand can be used to have the OpenSSH client connect via remote-connect. This has some advantages over the remote-ssh program. Most importantly, other programs that use ssh to connect to a device can now be used with remote devices via macchina.io REMOTE, by providing a ProxyCommand configuration directive, either on the command-line or via the OpenSSH configuration file (~/.ssh/config). An example for such a program is Visual Studio Code, with the Remote-SSH feature.

Command Line

export REMOTE_USERNAME=johndoe
export REMOTE_PASSWORD=s3cr3t
ssh -o 'ProxyCommand remote-connect 8ba57423-ec1a-4f31-992f-a66c240cbfa0.remote.macchina.io:22' pi@8ba57423-ec1a-4f31-992f-a66c240cbfa0.remote.macchina.io

Configuration File

~/.ssh/config:

Host 188d3d96-b14e-4804-a6c6-4407af5108a3.remote.macchina.io
  ProxyCommand remote-connect -u johndue -p s3cr3t 188d3d96-b14e-4804-a6c6-4407af5108a3.remote.macchina.io:22

SSH Command:

ssh pi@188d3d96-b14e-4804-a6c6-4407af5108a3.remote.macchina.io

Command-Line Arguments Help

You can run remote-connect without command-line options (or with --help or /help on Windows) to see a help screen with available command-line options.