OpenWrt Installation Guide
How to install NoPorts onto an OpenWrt router.
Package repo for OpenWrt 24.10 and 23.05
We now have our own package repo for the currently supported releases of OpenWrt. Please follow this guide for installing the Atsign key and adding the packages.
Manual install using the LuCI web interface
First download the latest packages for your chosen architecture from our releases page.
We've created packages for aarch64_cortex-a53, arm_cortex-a7_neon-vfpv4, mips_siflower, ramips (mipsel_24k) and x86_64; but if your chosen architecture isn't there please let us know by opening an issue. These packages should work on older OpenWrt (and OpenWrt derivatives like GL.iNet), though note that the LuCI package uses the JavaScript framework that was introduced in OpenWrt 21.02.
With the packages ready to go, sign into the web interface for your router and go to System
> Software
in the menu. Click on Upload Package
and Browse
to the csshnpd package you downloaded. Click Open
then Upload
and Install
. Repeat that process with the luci-app-csshnpd package.
For the new menu to appear you'll need to Log out
then sign in again.
You can now go to Network
>NoPorts
and fill out the config tab with your device atSign, manager atSign, device name and the OTP for key generation. Click the Enabled
box then hit Save & Apply
.
Now go to the NoPorts Enrollment
tab and follow the instructions there to generate a device key.
With the key in place navigate to System
>Startup
and Start
the sshnpd
service.
Command line installation
The releases page includes instructions for command line installation. These will work on OpenWrt derivatives that don't use LuCI (e.g. Teltonika) or if you just prefer working on the command line.
Those command line snippets set some variables for the RELEASE
number, ARCH
for system architecture and PACKAGE
name then use wget
to download the package from GitHub.
Packages are installed using opkg install
for OpenWrt 24.10 and earlier releases that use .ipk
type packages, or apk add
for newer OpenWrt which uses .apk
packages.
For example, to install the c1.0.14 release:
RELEASE="1.0.14"
ARCH=$(opkg print-architecture | grep ' 10$' | awk '{print $2}')
PACKAGE="csshnpd_${RELEASE}-1_${ARCH}.ipk"
wget -O ${PACKAGE} https://github.com/atsign-foundation/Atsign_OpenWRT_packages/releases/download/c${RELEASE}/${PACKAGE}
opkg install ${PACKAGE}
Now edit /etc/config/sshnpd
to use your atSigns, device name and device atSign OTP:
config sshnpd
option atsign '@example_device'
option manager '@example_client'
option device 'rutx10'
option args ''
option otp '123456'
option enabled '1'
Run at_enroll.sh
on the device. It will ask you to approvement the enrollment on your client (where you previously activated the atSigns and generated the OTP):
at_activate approve -a @example_device --arx noports --drx rutx10
On the device you should see a message saying enrollment is complete, and that the .atKeys file has been written.
Now start the sshnpd service:
service sshnpd start
And you should be ready to connect to the device:
sshnp -f @example_client -t @example_device -d rutx10_remote -h rv_eu
SNAPSHOT packages
NoPorts is now upstream in SNAPSHOT builds so you can install luci-app-csshnpd
from the System > Software page on LuCI. Or for a command line install run:
apk update
apk add csshnpd
Last updated