# Linux Device Installation

## Choose the operating system which is running on your <mark style="color:red;">CLIENT machine</mark>:

{% tabs %}
{% tab title="MacOS" %}

### Step 1 : Activate the device atSign from your <mark style="color:red;">CLIENT machine</mark>

If you've already activated the device atSign skip to [step 2](#step-2-installing-on-the-device).

#### (1.1) Download the activation software on the <mark style="color:red;">client machine</mark>

```bash
curl -L https://github.com/atsign-foundation/noports/releases/latest/download/universal.sh -o universal.sh
```

To check if the installation downloaded correctly:

```bash
stat universal.sh
```

#### (1.2) Run the installer

Make the script executable and run the script.

```bash
chmod u+x universal.sh
./universal.sh
```

#### (1.3) Activate the device atSign from the <mark style="color:red;">client machine</mark>

This command activates your atSign and prompts you to enter an OTP. This is only done during the setup of a brand new atsign.

```
~/.local/bin/at_activate -a @<REPLACE>_device
```

#### 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 management keys will be saved in `~/.atsign/keys`.

### Step 2 : Installing on the <mark style="color:orange;">DEVICE machine</mark>

#### (2.1) Download the installer

```bash
curl -L https://github.com/atsign-foundation/noports/releases/latest/download/universal.sh -o universal.sh
```

To check if the installation downloaded correctly:

```bash
stat universal.sh
```

#### (2.2) Run the installer

Make the script executable and run the script.

```bash
chmod u+x universal.sh
./universal.sh
```

***

### Step 3: Authorizing the device atSign

#### (3.1) Generate a passcode from your <mark style="color:red;">client machine</mark>

Run the following command. It should output a 6-character passcode.

```bash
~/.local/bin/at_activate otp -a @<REPLACE>_device
```

#### (3.2) Make an authorization request from your <mark style="color:orange;">device machine</mark>

<pre class="language-bash"><code class="lang-bash">~/.local/bin/at_activate enroll -a @&#x3C;REPLACE>_device \
<strong>  -s &#x3C;PASSCODE> \
</strong><strong>  -p noports \
</strong><strong>  -k ~/.atsign/keys/@&#x3C;REPLACE>_device_key.atKeys \
</strong><strong>  -d &#x3C;DEVICE_NAME> \
</strong><strong>  -n "sshnp:rw,sshrvd:rw"
</strong></code></pre>

#### 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 seconds
```

#### (3.3) Approve the authorization request from your <mark style="color:red;">client machine</mark>

Run the following command

```bash
~/.local/bin/at_activate approve -a @<REPLACE>_device --arx noports --drx <DEVICE_NAME>
```

{% endtab %}

{% tab title="Linux" %}

### Step 1 : Activate the device atSign from your <mark style="color:red;">CLIENT machine</mark>

If you've already activated the device atSign skip to [step 2](#step-2-installing-on-the-device).

#### (1.1) Download the activation software on the <mark style="color:red;">client machine</mark>

```bash
curl -L https://github.com/atsign-foundation/noports/releases/latest/download/universal.sh -o universal.sh
```

To check if the installation downloaded correctly:

```bash
stat universal.sh
```

#### (1.2) Run the installer

Make the script executable and run the script.

```bash
chmod u+x universal.sh
./universal.sh
```

#### (1.3) Activate the device atSign from the <mark style="color:red;">client machine</mark>

This command activates your atSign and prompts you to enter an OTP. This is only done during the setup of a brand new atsign.

```
~/.local/bin/at_activate -a @<REPLACE>_device
```

#### 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 management keys will be saved in `~/.atsign/keys`.

### Step 2 : Installing on the <mark style="color:orange;">DEVICE machine</mark>

#### (2.1) Download the installer

```bash
curl -L https://github.com/atsign-foundation/noports/releases/latest/download/universal.sh -o universal.sh
```

To check if the installation downloaded correctly:

```bash
stat universal.sh
```

#### (2.2) Run the installer

Make the script executable and run the script.

```bash
chmod u+x universal.sh
./universal.sh
```

***

### Step 3: Authorizing the device atSign

#### (3.1) Generate a passcode from your <mark style="color:red;">client machine</mark>

Run the following command. It should output a 6-character passcode.

```bash
~/.local/bin/at_activate otp -a @<REPLACE>_device
```

#### (3.2) Make an authorization request from your <mark style="color:orange;">device machine</mark>

<pre class="language-bash"><code class="lang-bash">~/.local/bin/at_activate enroll -a @&#x3C;REPLACE>_device \
<strong>  -s &#x3C;PASSCODE> \
</strong><strong>  -p noports \
</strong><strong>  -k ~/.atsign/keys/@&#x3C;REPLACE>_device_key.atKeys \
</strong><strong>  -d &#x3C;DEVICE_NAME> \
</strong><strong>  -n "sshnp:rw,sshrvd:rw"
</strong></code></pre>

#### 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 seconds
```

#### (3.3) Approve the authorization request from your <mark style="color:red;">client machine</mark>

Run the following command

```bash
~/.local/bin/at_activate approve -a @<REPLACE>_device --arx noports --drx <DEVICE_NAME>
```

{% endtab %}

{% tab title="Windows" %}

### Step 1 : Activate the device atSign from your <mark style="color:red;">CLIENT machine</mark>

If you've already activated the device atSign skip to [step 2](#step-2-installing-on-the-device).

#### (1.1) Download the activation software on the <mark style="color:red;">client machine</mark>

See the Windows [Windows Installation Guide](/installation/windows.md#cli-client-installation)

#### (1.2) Activate the device atSign from the <mark style="color:red;">client machine</mark>

This command activates your atSign and prompts you to enter an OTP. This is only done during the setup of a brand new atsign.

```
C:\\Program\ Files\\NoPorts\\at_activate.exe otp -a @<REPLACE>_device
```

#### 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 management keys will be saved in `~\.atsign\keys`.

### Step 2 : Installing on the <mark style="color:orange;">DEVICE machine</mark>

<pre class="language-bash"><code class="lang-bash">~/.local/bin/at_activate enroll -a @&#x3C;REPLACE>_device \
<strong>  -s &#x3C;PASSCODE> \
</strong><strong>  -p noports \
</strong><strong>  -k ~/.atsign/keys/@&#x3C;REPLACE>_device_key.atKeys \
</strong><strong>  -d &#x3C;DEVICE_NAME> \
</strong><strong>  -n "sshnp:rw,sshrvd:rw"
</strong></code></pre>

#### 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 seconds
```

#### (3.3) Approve the authorization request from your <mark style="color:red;">client machine</mark>

Run the following command

```bash
~/.local/bin/at_activate approve -a @<REPLACE>_device --arx noports --drx <DEVICE_NAME>
```

{% endtab %}
{% endtabs %}

## Choose the operating system which is running on your <mark style="color:red;">CLIENT machine</mark>:

{% tabs %}
{% tab title="MacOS" %}

### Step 1 : Activate the device atSign from your <mark style="color:red;">CLIENT machine</mark>

If you've already activated the device atSign skip to [step 2](#step-2-installing-on-the-device).

#### (1.1) Download the activation software on the <mark style="color:red;">client machine</mark>

```bash
curl -L https://github.com/atsign-foundation/noports/releases/latest/download/universal.sh -o universal.sh
```

To check if the installation downloaded correctly:

```bash
stat universal.sh
```

#### (1.2) Run the installer

Make the script executable and run the script.

```bash
chmod u+x universal.sh
./universal.sh
```

#### (1.3) Activate the device atSign from the <mark style="color:red;">client machine</mark>

This command activates your atSign and prompts you to enter an OTP. This is only done during the setup of a brand new atsign.

```
~/.local/bin/at_activate -a @<REPLACE>_device
```

**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 management keys will be saved in `~/.atsign/keys`.

### Step 2 : Installing on the <mark style="color:orange;">DEVICE machine</mark>

#### (2.1) Download the installer

```bash
curl -L https://github.com/atsign-foundation/noports/releases/latest/download/universal.sh -o universal.sh
```

To check if the installation downloaded correctly:

```bash
stat universal.sh
```

#### (2.2) Run the installer

Make the script executable and run the script.

```bash
chmod u+x universal.sh
./universal.sh
```

***

### Step 3: Authorizing the device atSign

#### (3.1) Generate a passcode from your <mark style="color:red;">client machine</mark>

Run the following command. It should output a 6-character passcode.

```bash
~/.local/bin/at_activate otp -a @<REPLACE>_device
```

#### (3.2) Make an authorization request from your <mark style="color:orange;">device machine</mark>

<pre class="language-bash"><code class="lang-bash">~/.local/bin/at_activate enroll -a @&#x3C;REPLACE>_device \
<strong>  -s &#x3C;PASSCODE> \
</strong><strong>  -p noports \
</strong><strong>  -k ~/.atsign/keys/@&#x3C;REPLACE>_device_key.atKeys \
</strong><strong>  -d &#x3C;DEVICE_NAME> \
</strong><strong>  -n "sshnp:rw,sshrvd:rw"
</strong></code></pre>

**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 seconds
```

#### (3.3) Approve the authorization request from your <mark style="color:red;">client machine</mark>

Run the following command

```bash
~/.local/bin/at_activate approve -a @<REPLACE>_device --arx noports --drx <DEVICE_NAME>
```

{% endtab %}

{% tab title="Linux" %}

### Step 1 : Activate the device atSign from your <mark style="color:red;">CLIENT machine</mark>

If you've already activated the device atSign skip to [step 2](#step-2-installing-on-the-device).

#### (1.1) Download the activation software on the <mark style="color:red;">client machine</mark>

```bash
curl -L https://github.com/atsign-foundation/noports/releases/latest/download/universal.sh -o universal.sh
```

To check if the installation downloaded correctly:

```bash
stat universal.sh
```

#### (1.2) Run the installer

Make the script executable and run the script.

```bash
chmod u+x universal.sh
./universal.sh
```

#### (1.3) Activate the device atSign from the <mark style="color:red;">client machine</mark>

This command activates your atSign and prompts you to enter an OTP. This is only done during the setup of a brand new atsign.

```
~/.local/bin/at_activate -a @<REPLACE>_device
```

**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 management keys will be saved in `~/.atsign/keys`.

### Step 2 : Installing on the <mark style="color:orange;">DEVICE machine</mark>

#### (2.1) Download the installer

```bash
curl -L https://github.com/atsign-foundation/noports/releases/latest/download/universal.sh -o universal.sh
```

To check if the installation downloaded correctly:

```bash
stat universal.sh
```

#### (2.2) Run the installer

Make the script executable and run the script.

```bash
chmod u+x universal.sh
./universal.sh
```

### Step 3: Authorizing the device atSign

#### (3.1) Generate a passcode from your <mark style="color:red;">client machine</mark>

Run the following command. It should output a 6-character passcode.

```bash
~/.local/bin/at_activate otp -a @<REPLACE>_device
```

#### (3.2) Make an authorization request from your <mark style="color:orange;">device machine</mark>

<pre class="language-bash"><code class="lang-bash">~/.local/bin/at_activate enroll -a @&#x3C;REPLACE>_device \
<strong>  -s &#x3C;PASSCODE> \
</strong><strong>  -p noports \
</strong><strong>  -k ~/.atsign/keys/@&#x3C;REPLACE>_device_key.atKeys \
</strong><strong>  -d &#x3C;DEVICE_NAME> \
</strong><strong>  -n "sshnp:rw,sshrvd:rw"
</strong></code></pre>

**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 seconds
```

#### (3.3) Approve the authorization request from your <mark style="color:red;">client machine</mark>

Run the following command

```bash
~/.local/bin/at_activate approve -a @<REPLACE>_device --arx noports --drx <DEVICE_NAME>
```

{% endtab %}

{% tab title="Windows" %}

### Step 1 : Activate the device atSign from your <mark style="color:red;">CLIENT machine</mark>

If you've already activated the device atSign skip to [step 2](#step-2-installing-on-the-device).

#### (1.1) Download the activation software on the <mark style="color:red;">client machine</mark>

If you haven't already done so, download the installer [from GitHub](https://github.com/atsign-foundation/noports/releases/download/v5.8.7/NoPortsInstaller-windows-x64.zip). Then unzip the file.

#### (1.2) Activate the device atSign from the <mark style="color:red;">client machine</mark>

This command activates your atSign and prompts you to enter an OTP. This is only done during the setup of a brand new atsign.

```
C:\\Program\ Files\\NoPorts\\at_activate.exe otp -a @<REPLACE>_device
```

**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 management keys will be saved in `~\.atsign\keys`.

### Step 2 : Installing on the <mark style="color:orange;">DEVICE machine</mark>

#### (2.1) Download the installer

```bash
curl -L https://github.com/atsign-foundation/noports/releases/latest/download/universal.sh -o universal.sh
```

To check if the installation downloaded correctly:

```bash
stat universal.sh
```

#### (2.2) Run the installer

Make the script executable and run the script.

```bash
chmod u+x universal.sh
./universal.sh
```

### Step 3: Authorizing the device atSign

#### (3.1) Generate a passcode from your <mark style="color:red;">client machine</mark>

Open the installer and click on Manage Keys.

<figure><img src="/files/4KE0h9rQ1nwhpNB3EB1q" alt=""><figcaption></figcaption></figure>

Enter the device atSign and click Next.

<figure><img src="/files/Kh0q9hDH3T9pO2xxHt2z" alt=""><figcaption></figcaption></figure>

Click New OTP.

<figure><img src="/files/YyDR6ddLZ3WmeDAAEp95" alt=""><figcaption></figcaption></figure>

Wait a few seconds for the OTP to appear then proceed to the next step.

<figure><img src="/files/jA2UzxaGTQtmSPP6ZmGI" alt=""><figcaption></figcaption></figure>

#### (3.2) Make an authorization request from your <mark style="color:orange;">device machine</mark>

Run the following command on your remote device.

<pre class="language-bash"><code class="lang-bash">~/.local/bin/at_activate enroll -a @&#x3C;REPLACE>_device \
<strong>  -s &#x3C;PASSCODE> \
</strong><strong>  -p noports \
</strong><strong>  -k ~/.atsign/keys/@&#x3C;REPLACE>_device_key.atKeys \
</strong><strong>  -d &#x3C;DEVICE_NAME> \
</strong><strong>  -n "sshnp:rw,sshrvd:rw"
</strong></code></pre>

**Once you see the text below, you're ready to continue to the next step.**

```
Submitting enrollment request 
Enrollment ID: ---------------------
Waiting for approval; will check every 10 seconds
```

#### (3.3) Approve the authorization request from your <mark style="color:red;">client machine</mark>

Click Refresh and the new request will appear

<figure><img src="/files/OTIu7eCpRgZSzlA2OGwu" alt=""><figcaption></figcaption></figure>

If the request looks incorrect, then click "Deny" to deny it, and start the process again.

If the request looks correct, then click "Approve" to approve it.

<figure><img src="/files/E0pdtfH2xuHE5V2KnLe4" alt=""><figcaption></figcaption></figure>

Once the request has been approved, it should disappear from the list in the installer. The enrollment will complete on the remote device in a few seconds.

<figure><img src="/files/jA2UzxaGTQtmSPP6ZmGI" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.noports.com/installation/linux/device.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
