Skip to main content

Introduction to Remote Access

This guide serves as a comprehensive introduction to remote access that will cover tunnels and their asynchronous nature.

labs

This functionality is only available to select organizations participating in the Peridio closed beta program.

Subject to breaking changes prior to general availability.

For more information, see content labels.

To learn more about Peridio tunnels in general, see the tunnels reference.

Prerequisites

Remote Access Resources

Remote access comprises the following resources:

  • Tunnels - used to securely connect users to devices

Getting Started

The goal of this guide is to create a tunnel for a device.

Creating a Tunnel

Create a tunnel so that we can connect to devices.

peridio tunnels create \
--device-prn $PERIDIO_DEVICE_PRN \
--device-tunnel-port 22

Checking to see if a tunnel is open

Because the create tunnel call is asynchronous, we need to check to see if the tunnel is ready for us to use. We would recommend waiting 2-3 seconds after create to make the first attempt. Then subsequent requests should backoff incrementally up to a total elapsed time of 30 seconds to reduce network strain. For example, our CLI uses the formula (x + 2) ^ 2. That means our second attempt is 4 seconds after the first, and the third attempt is 9 seconds after the second.

peridio tunnels get \
--prn $PERIDIO_TUNNEL_PRN

Then look for the state key in the response:

{
...
"state": "open",
...
}

Connecting to a tunnel via SSH

When the tunnel is open, then you can use the keys server_tunnel_ip_address and server_tunnel_port from the response to connect in the form of ssh [user]@[server_tunnel_ip_address] -p [server_tunnel_port].

{
...
"server_tunnel_ip_address": "3.82.23.99",
"server_tunnel_port": 47532,
...
}

Assuming the device allows the user user to ssh in:

ssh user@3.82.23.99 -p 47532