TutorialsConnecting › Connecting to the File System

Connecting to the File System

Introduction

This tutorial will walk you through connecting to a NEPI device's File System through an SSH connected terminal from a PC.

What you will need

1) 1x NEPI-enabled device with internet access. This tutorial uses an edge-compute processor box that includes an NVIDIA Jetson Xavier NX embedded GPU with NEPI Engine software installed.

2) 1x PC with internet access and configured to access the NEPI device's RUI browser-based interface. This tutorial uses a Windows 11 PC and a USB GigE Ethernet adapter and Ethernet cable.

NOTE: Instructions for configuring a PC and connecting to a NEPI device are provided in the Connecting to the User Interface tutorial.

Hardware Setup

Connect the NEPI device to your PC's Ethernet adapter using an Ethernet cable, then power your NEPI device.

Screenshot

Accessing the NEPI File System

Download the NEPI default SSH Key.

1) Download the default NEPI private SSH key "nepi_engine_default_private_ssh_key" from:

https://github.com/nepi-engine/nepi_engine/blob/ros1_main/nepi_env/ssh_keys/nepi_engine_default_private_ssh_key

The NEPI default SSH account credentials are:

  1. username: nepi
  2. password (for sudo): nepi

Setting up and using your NEPI SSH Key

SSH password login is disabled for NEPI devices, so you'll need to install the NEPI device's private SSH key and configure your PC following the instructions in this section.

For Linux PCs

Follow the setup instructions at:

https://github.com/nepi-engine/nepi_setup/blob/main/NEPI_USER_PC_SETUP.md

NOTE: After completing setup, a number of useful command line shortcuts will be installed. You can view all of these by typing nepihelp in your PC's terminal.

You can ssh and sftp into a running NEPI software using sshn and sftpn command line shortcuts.

If your NEPI software is running in a container, you can ssh into the container host's OS using sshnh command line shortcut.

For Mac PCs

Both Linux and Mac PC operating systems support direct SSH connections from system terminals. Follow the instructions below to SSH into your NEPI system from either of these platforms.

1. Create a new folder on your PC to store the NEPI ssh key you downloaded and copy the ssh key into that folder (the remaining instructions assume "~/ssh_keys"), then open terminal in the folder you copied the key to and change permissions for the key:

mkdir ~/ssh_keys
cd ~/ssh_keys
wget 'https://www.dropbox.com/scl/fi/t1qcizpfjohqhlwls8il7/nepi_engine_default_private_ssh_key?rlkey=tunjq4u0qim6u2qzfwjnizui3&st=t6m7a6fe&dl=0' -O nepi_engine_default_private_ssh_key
sudo chmod 600 nepi_engine_default_private_ssh_key

3) In the same terminal, start an SSH session to your NEPI device by entering the text below:

ssh -o StrictHostKeyChecking=no -p 2222 -i ~/ssh_keys/nepi_engine_default_private_ssh_key nepi@192.168.179.103

You can add useful aliases to your system that make connecting faster and easier with the following instructions:

4) Add the following line to your PC's "hosts" file by opening a terminal on your PC and typing:

sudo nano /etc/hosts

a) Add the following line to your file, replacing the items with your actual system values:

<IP Address of your NEPI-enabled device> <Name of your NEPI device>

b) The factory IP address for NEPI devices is "192.168.179.103":

192.168.179.103 nepi

NOTE: If you have multiple NEPI devices on the network with different IP addresses, add a line for each with a unique name (i.e., 192.168.179.103 nepi-robot1, 192.168.179.104 nepi-robot2).

d) Press "Ctrl-x", then "Y", then "enter" to save and exit.

5) Open your terminal shell startup file:

For Mac: nano ~/.zshrc

Add the following lines to the end of the file:

# Load Nepi Aliases File.
if [ -f ~/.nepi_aliases ]; then
. ~/.nepi_aliases
fi

b) Change to your home folder and download the 'nepi_pc_aliases' sh file using the commands below:

cd ~/
wget 'https://www.dropbox.com/scl/fi/psgzxxd99o6za30bnpha1/nepi_pc_aliases?rlkey=uwuw8p6xw4fsy7u6cz3thelnb&st=zwq3oy1y&dl=0' -O .nepi_aliases
source ~/.bashrc

Type 'nepi' at the command line to see a list of available terminal aliases:

nepi

NOTE: The sshn and sftpn aliases are the primary shortcuts for connecting to your NEPI device. If you have multiple devices, add aliases with unique names for each device.

6) Open a new terminal and test the ssh and sftp shortcuts:

sshn
sftpn

For Windows PCs

If you need to access the NEPI file system on Windows, you will first need to install a remote terminal application like PuTTY and create a PuTTY compatible key from the provided "nepi_engine_default_private_ssh_key" private key file.

NOTE: There are many alternative SSH-capable terminal emulators on Windows that do not require the key-translation step. These include git-bash, cygwin, wsl2, and many terminal emulators included in software IDEs.

1) Create a new folder on your PC to store the NEPI ssh key you downloaded and copy the ssh key into that folder (the remaining instructions assume "C:\ssh_keys").

A screenshot of a computer Description automatically generated

2) Download PuTTY from: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html and install the software using the default install instructions.

A screenshot of a computer Description automatically generated

3) From your Windows Start menu, select the PuTTYgen application, which you will use to convert the NEPI key you downloaded to a PuTTY compatible key.

A black screen with a red square Description automatically generated

4) From the PuTTYgen application window, click the "Load" button.

A screenshot of a computer Description automatically generated

From the open popup window, do the following:

a) Navigate to your new ssh_keys folder.

b) Select the "All Files (*.*)" option in the drop-down menu just above the "Open" button.

c) Select the "nepi_engine_default_private_ssh_key" in the file list and hit the "Open" button.

d) Click the "OK" button.

A screenshot of a computer Description automatically generated

e) Next, select the "Save private key" button, and click "Yes" in the popup window.

A screenshot of a computer Description automatically generated

f) From the save popup window, enter the following file name to save your new PuTTY compatible SSH key as "nepi_engine_default_private_ssh_key.ppk", and click the "Save" button.

You can now close the PuTTYgen application.

Screenshot

5) Open the PuTTY application from your Windows Start menu.

A black rectangular object with a red rectangle in the middle Description automatically generated

a) Enter the IP address of your NEPI device in the "HostName" entry box. NEPI default IP address is "192.168.179.103".

A screenshot of a computer Description automatically generated

b) From the left menu list, expand the "SSH" then "Auth" menu items and click on the "Credentials" option, then click the "Browse" button and select the newly saved key from your ssh_keys folder.

A screenshot of a computer Description automatically generated

c) Click the "Session" option at the top of the left menu list, enter the name "NEPI" into the Saved Sessions entry box, and click the "Save" button to save your NEPI PuTTY configuration. Click the "Open" button at the bottom of the application to open an SSH connected terminal to your NEPI device.

A screenshot of a computer screen Description automatically generated

You now have an SSH connected terminal to your NEPI file system.

Navigating the File System

The majority of the NEPI file system files you would want to work with are located in a few key folders on the NEPI device.

NEPI File System Locations
NEPI Folder Description
/mnt/nepi_storage The NEPI network shared user storage drive containing folders for AI models, automation scripts, logged data, user config files, NEPI image install and archiving, and more.
/opt/nepi The main NEPI software package installation folder containing the NEPI ROS environment, NEPI Resident User Interface (RUI) files, and NEPI Link remote server communication subsystem used for the NEPI Connect application.

Navigating the NEPI File System

NOTE: This step should be done on your NEPI DEVICE in an SSH connected terminal.

a) SSH into your NEPI device and take a look at your NEPI device's pre-configured aliases by typing the following command:

nepi

b) You can navigate to common NEPI folders using the following command line aliases within your SSH session.

Example: Typing 'api' in an SSH connected terminal will take you to the NEPI file system '/opt/nepi/ros/share/nepi_apps' folder.

Common Nepi User Storage Folders:

  • cfg = /mnt/nepi_storage/user_cfg
  • ai = /mnt/nepi_storage/ai_models
  • auto = /mnt/nepi_storage/automation_scripts
  • data = /mnt/nepi_storage/data
  • installs = /mnt/nepi_storage/installs
  • src = /mnt/nepi_storage/nepi_src
  • tmp = /mnt/nepi_storage/tmp

Common NEPI File System Folders:

  • aifs = /opt/nepi/ros/share/nepi_aifs
  • api = /opt/nepi/ros/lib/python3/dist-packages/nepi_api
  • apps = /opt/nepi/ros/share/nepi_apps
  • drivers = /opt/nepi/ros/lib/nepi_drivers
  • etc = /opt/nepi/ros/etc
  • lib = /opt/nepi/ros/lib
  • managers = /opt/nepi/ros/lib/nepi_managers
  • ros = /opt/nepi/ros
  • nfi = /mnt/nepi_storage/nepi_full_img
  • nfia = /mnt/nepi_storage/nepi_full_img_archive
  • python = /opt/nepi/ros/lib/python3/dist-packages/
  • rui = /opt/nepi/nepi_rui/src/rui_webserver/rui-app/src
  • sdk = /opt/nepi/ros/lib/python3/dist-packages/nepi_sdk