Keyless remote SSH for Nvidia Jetson Nano

Kilton Hopkins
Darcy.ai

--

So you got your Nvidia® Jetson Nano and you start to make something awesome. Nice job! If you’re like me, then you want to take what you’ve made and put it to work. These boards are great for AI and IoT applications. But most useful solutions that I create require the board to be put in a specific location, such as a customer site.

Makes sense, right? You can’t generate a lot of real results with the board attached to a USB cable at your desk.

Once I take the Nano away from my desk, I start to have problems. The issues are usually stemming from two areas — remote access and remote monitoring. Have you ever taken your Jetson Nano to a target location and done a pilot run of your solution? The first thing that I notice is that once I leave the location, I have very limited options for working with my board. I want to see how the solution is working and I want to debug. But unless my pilot location can give me VPN access, this isn’t going to happen. And that’s actually the wrong approach, anyway. There’s no way that I’m going to get direct network access to every deployment location and I don’t want that convoluted security nightmare falling on my shoulders.

What do I want? What should you want, too?

I want to be able to get into my Jetson Nano from wherever I am. And I don’t want to open any ports or set up any weird network configuration to make it happen. Ideally, I’d be able to simply give the board Internet connectivity and be done with it. That’s something I need, anyway, for my solution to work.

I’d also like to see if the board is alive and if my applications are running. I don’t just want this when I’m ready for a full production deployment. I need it as soon as the Nano leaves my desk, even if I’m still building stuff.

To get into my Nano remotely, I need an SSH connection that works even when the board is on a different network than my home or office network. And I’d really like one that doesn’t require credentials because then I can lock down the user accounts on the board. That’s called “keyless SSH”. To get this type of functionality, I would normally need to have VPN access to every network where I have a Nano. Or I’d need to host some sort of SSH access server and find a way to get the edge boards connected. Can you get this stuff more easily? Yes, of course…

Put your Jetson Nano on the Darcy Cloud! I’m going to walk you through the steps to do it. Then you can get back to building and testing and more building and more testing and eventually watching your solution kick ass in a deployment.

The gist of the Darcy Cloud is that your Nano stays basically the same but has a small piece of software on it called an agent that talks to the cloud. The cloud gives you keyless SSH access, monitoring of the board’s condition, and application deployment and management capabilities. You want this stuff. It will forever change the way you work with your board.

To put your Nano on the Darcy Cloud, you really just need to run an install script for the agent. But to get to that point, you’ll need to make sure your board is ready and also get a Darcy Cloud account. Easy stuff. I’ll walk you through all the steps now.

Get your Jetson Nano ready

If you can SSH into your Nano, you are done with this step. If you can’t, then you’ll need to install the operating system and connect to the Internet. Follow the Nvidia guide for setting up your Jetson Nano in headless mode. Alternatively you can follow the setup instructions for using an attached display but you will need a monitor with HDMI input and a USB keyboard and mouse.

Follow the Jetson Nano Setup Guide

Your goal at this step is to have your Nano running with the custom Nvidia Ubuntu operating system and connected to the Internet. Because the Jetson Nano does not have WiFi built-in, you will either need to add a WiFi dongle or use wired Ethernet to connect the board.

Once you can connect to your Nano via SSH on your local network or you are seeing a Linux command prompt with an attached monitor or via the USB connection, then you are done with this step and ready to continue!

Get a Darcy Cloud account

To get a Darcy Cloud developer account, you just need to sign up at https://cloud.darcy.ai. Choose your username and proceed. You can create an account using an email and password or you can use a Google account or a Github account.

When you have created your account, you will see that a project has been created for you. Leave that project as it is (you can customize it later) and let’s proceed to the next step!

Add your Jetson Nano as an edge node

Get ready to run the installation of the agent software on your Nano by opening a terminal session (Linux command prompt) on the board. You can use SSH or simply boot the board with an attached monitor and keyboard, or use the USB cable method to connect directly to the Nano.

Make sure “curl” is installed on your Nano

Next you are going to run this command on your Nano’s command prompt. But you’ll need to make sure the “curl” package is installed first. If you don’t already have “curl” then use the following commands to get it.

sudo apt-get updatesudo apt-get install curl

Add a node in the Darcy Cloud

Click the “+ ADD NODE” button.

This will open a dialog box that contains a command. Click the “copy” button to get it copied to your clipboard.

Paste your Darcy Cloud agent installation command

After “curl” is installed (or if you already had it) then you just need to paste your Darcy Cloud agent installation command. Your result should look something like this:

You’re Done!

After the installation completes you should see something like this in your Darcy Cloud interface:

--

--

Kilton Hopkins
Darcy.ai
Editor for

Co-founder and CTO of Edgeworx. Creator of Eclipse ioFog open-source edge computing. Loves Commodore 64.