The Mervis CloudAccess Adapter is a Windows client application that establishes a secure tunnel to your remote PLC. It allows you to access TCP services running on the PLC (such as SSH, Web Servers, or Modbus TCP) as if the device were on your local network.
This guide demonstrates how to configure the Adapter to access an SSH server on a remote PLC.
Before proceeding, ensure you have the following:
The CloudAccess Adapter software and credentials are not publicly downloadable. Please contact Mervis Technical Support to request the Adapter binaries and your specific project credentials.
The Adapter is controlled entirely by a JSON configuration file. You must map the remote Channel ID to a Local Port on your computer.
Update the configuration to match the example below. Pay close attention to the highlighted fields. You can download this snippet using the link above the code block.
{ "urls": "http://*:25011", "AdapterEngine": { "Forwarding": [ { "ChannelId": "YOUR_CHANNEL_ID_HERE", "Credentials": { "User": "YOUR_CA_USERNAME", "Password": "YOUR_CA_PASSWORD" }, "Protocol": "Tcp", "AdapterClientEndpoint": { "Port": 8082, "Ssl": false, "Timeout": "00:01:00" }, "DsServerEndpoint": { "Host": "cloudaccess.mervis.info", "Port": 23000, "Ssl": true, "ValidateCertificate": false, "Timeout": "00:02:30" } } ] }, "Logging": { "Console": { "Disabled": false }, "File": { "Disabled": true }, "Levels": { "Default": "Trace", "Microsoft": "Warning" } }, "AllowedHosts": "*" }
| Parameter | Description |
|---|---|
| ChannelId | The specific ID provided by support that maps to the SSH service on the PLC. |
| Credentials | Your CloudAccess User/Password (distinct from your PLC login). |
| AdapterClientEndpoint / Port | The Local Port. This is the port you will connect to on your PC (e.g., `8082`). You can change this to any free port. |
| DsServerEndpoint | Defines the connection to the Mervis Cloud. Typically ``cloudaccess.mervis.info`` on port ``23000``. |
You can define multiple channels to use them in parallel. For example, you can map an SSH connection (on local port 8082) and a PLC Web Server (on local port 8083) simultaneously.
To do this, add a second block to the ``“Forwarding”: [ … ]`` array. Ensure every block has its unique ``ChannelId`` and a unique local ``Port``.
"Forwarding": [ { "ChannelId": "SSH_CHANNEL_ID", "Credentials": { "User": "...", "Password": "..." }, "AdapterClientEndpoint": { "Port": 8082 ... }, "DsServerEndpoint": { ... } }, { "ChannelId": "WEB_SERVER_CHANNEL_ID", "Credentials": { "User": "...", "Password": "..." }, "AdapterClientEndpoint": { "Port": 8083 ... }, "DsServerEndpoint": { ... } } ]
You can run the adapter temporarily via the console to test the connection.
.\ESG.NetCore.DataSpy.Client.Host.exe --runAsConsole -configFile "appsettings.json"
Success: You should see log output indicating the adapter has started and is listening on your local port (e.g., `127.0.0.1:8082`). Keep this window open.
Now that the tunnel is active, connect your SSH client to your localhost.
When you click Open, you will be prompted for login credentials.
Login Note: At this stage, you are logging into the PLC's Operating System. Enter the root user and password for the PLC hardware (e.g., Unipi / root), not the CloudAccess credentials.
Windows Terminal Example:
ssh unipi@localhost -p 8082 -o ServerAliveInterval=10