Windows to Linux
How to install NoPorts when connecting from Windows to Linux
Step 1 to Step 4
These initial steps set up the machine initiating the connection.
On the machine you are connecting from
In this installation guide, @example01_np will represent the client atSign, while @example02_np will represent the device atSign.
Step 1: Download and run the Installer
Download the msi installer from GitHub. You can run the msi right from the windows-bundle.zip.

Step 2: Client atSign activation (@example01_np)
If you've already activated your client atSign on another device, this step will not work. Instead, follow this guide: Reuse your client atSign on another machine
This command activates your atSign and prompts you to enter an OTP. This is only done during the setup of a brand new atSign.
Replace @<REPLACE>_np with your client atSign.
at_activate.exe -a "@<REPLACE>_np"Enter the one-time password (OTP) & Check your SPAM/PROMOTIONS folders
at_activate will pause and wait for the input of a one-time pin (OTP) sent to your email or phone number.
Once activated, the master keys will save at C:\Users\<user>\.atsign\keys.
Step 3: Device atSign activation (@example02_np)
Run the same command, but for your device atSign.
Replace @<REPLACE>_np with your device atSign.
at_activate.exe -a "@<REPLACE>_np"Enter the one-time password (OTP) & Check your SPAM/PROMOTIONS folders
at_activate will pause and wait for the input of a one-time pin (OTP) sent to your email or phone number.
Once activated, the master keys will save at C:\Users\<user>\.atsign\keys.
Step 4: Generate an atSign authorization passcode for your device atSign
Run the following command to generate a 6-character one-time passcode. You will use this passcode in Step 6.
Replace @<REPLACE>_np with your device atSign.
at_activate.exe otp -a "@<REPLACE>_np"Step 5 and Step 6
After setting up the machine you're connecting from, you'll configure the machine you're connecting to.
On the machine you are connecting to
Step 5: Download and run the Installer
Download the installer from GitHub by running the following command:
curl -L https://github.com/atsign-foundation/noports/releases/latest/download/universal.sh -o universal.shTo check if the installation downloaded correctly:
stat universal.shMake the script executable and run the script by running the command below:
chmod u+x universal.sh
./universal.shDuring installation, you’ll be prompted to enter the following items:
You may be asked to enter your password if your machine requires sudo privileges.
The install type
Enter
devicewhen prompted.
Your atSigns
Client atSign: e.g.,
@example01_npDevice atSign: e.g.,
@example02_np
Your device name
This should be the name of the machine you're currently installing on.
Step 6: Initiate atSign authorization request
Run the following command to make an authorization request:
Be sure to replace the following values:
@<REPLACE>_np with your device atSign,
<PASSCODE> with the passcode generated in Step 4,
@<REPLACE>_np_key with your device atSign,
<DEVICE_NAME> with the name of the machine you are on
~/.local/bin/at_activate enroll -a @<REPLACE>_np \
-s <PASSCODE> \
-p noports \
-k ~/.atsign/keys/@<REPLACE>_np_key.atKeys \
-d <DEVICE_NAME> \
-n "sshnp:rw,sshrvd:rw"Once you see this text, you're ready to continue to the next step.
Submitting enrollment request
Enrollment ID: ---------------------
Waiting for approval; will check every 10 secondsStep 7 and Step 8
With both machines now configured, the final steps bring us back to the machine initiating the connection.
On the machine you are connecting from
Step 7: Approve the atSign authorization request
Run the following command:
Be sure to replace the following values:
@<REPLACE>_np with your device atSign,
@<REPLACE_NAME> with the device name from Step 6.
.\at_activate approve -a "@<REPLACE>_np" --arx NoPorts --drx <REPLACE_NAME>Step 8: Use NoPorts!
That's it. You can start using NoPorts or explore some of the documented use cases, including MCP, SSH, RDP, SFTP, Web Server, and SMB.
Last updated
