# First Time Connection Guide

## Prerequisites

* [x] **VPS IP address** ( <https://www.whatismyip.com> )
  * These examples will use a ficitious `13.13.13.13`
* [x] **SSH username** on the VPS (e.g. `ubuntu`, `root`, or other)
* [x] **Know your local path to your private key** on your local machine&#x20;
  * e.g. Windows `C:\Users\Alice\.ssh\node_private_key`&#x20;
  * e.g. Macintosh `/Users/alice/.ssh/node_private_key`&#x20;
  * e.g. Linux `/home/alice/.ssh/node_private_key`

## Assumptions

* You are using Debian `Ubuntu` as your distribution.  If you are not, please substitute `ubuntu` for `root` throughout this document.
* The username `alice` or `Alice` **should be** replaced with your actual local username on your Windows or Macintosh system.
* We are using an `ed25519` SSH key pair ( replace with `rsa` otherwise )

***

## :computer: Windows, Macintosh or Linux

{% stepper %}
{% step %}

### **Open Terminal**

{% tabs %}
{% tab title="Windows" %}
:window: Launch **Windows Terminal** and select a PowerShell tab (or Command Prompt if you prefer).

{% hint style="success" %}
You may also decide to use remote access applications tools such as **Termius** or **PuTTy**

**Termius:**  [**https://www.termius.com**](https://www.termius.com/pricing)**/**

**PuTTy:** [**https://www.chiark.greenend.org.uk/\~sgtatham/putty/latest.html**](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)

{% endhint %}
{% endtab %}

{% tab title="Macintosh" %}
:apple: Press ⌘ Space, type `Terminal` and hit <kbd>Enter</kbd>.
{% endtab %}

{% tab title="Linux" %}
:penguin: From the GUI launch a terminal app. &#x20;

If on the command line, no action needed.
{% endtab %}
{% endtabs %}
{% endstep %}

{% step %}

### **Remote Connection to your VPS**

This step assumes `root` as the default username created by the cloud provider for first time access.  Depending on the cloud provider this username may be different.  You may need to try all three options through process of elimination to gain initial access.&#x20;

<table><thead><tr><th width="105" align="center">Possibility</th><th>Description</th></tr></thead><tbody><tr><td align="center">root</td><td>Digital Ocean or Hetzner may use this as the default.</td></tr><tr><td align="center">ubuntu</td><td>AWS may use this as default.</td></tr><tr><td align="center">admin</td><td>Debian 12 users may need to use the <code>admin</code> username as the default for initial connections.</td></tr></tbody></table>

{% hint style="warning" %}
Remember we are using **generic names**, **locations** and **IP address** for your **SSH key** and **VPS** external IP address.
{% endhint %}

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

```
ssh -i C:\Users\Alice\.ssh\node_private_key ubuntu@13.13.13.13
```

{% endtab %}

{% tab title="Macintosh" %}

```
ssh -i /Users/alice/.ssh/node_private_key ubuntu@13.13.13.13
```

{% endtab %}

{% tab title="Linux" %}

```
ssh -i /home/alice/.ssh/node_private_key ubuntu@13.13.13.13
```

{% endtab %}
{% endtabs %}
{% endstep %}

{% step %}

### The host-key fingerprint prompt

We should now be **remotely connected** to our VPS.

On FIRST connect you will see a message similar :point\_down:

```
The authenticity of host '13.13.13.13 (13.13.13.13)' can't be established.
ECDSA key fingerprint is SHA256:AbCdEfGhIjKlMnOpQrStUvWxYz1234567890+=.
Are you sure you want to continue connecting (yes/no)?
```

{% endstep %}

{% step %}

### Verify the fingerprint

* **Retrieve the expected fingerprint** from your VPS provider’s dashboard or control panel (most clouds show it when you create the instance).
* **Compare** that value against what your SSH client displays.

{% hint style="warning" %}
In most cases, because you are manually making this connection, you can be confident you’re connecting to the correct host. However, when handling remote connections, <mark style="color:green;">**always exercise extra caution.**</mark>
{% endhint %}
{% endstep %}

{% step %}

### Accept the fingerprint

If everything matches from step 4, you may type in the full word `yes` and hit <kbd>enter</kbd>.

```
The authenticity of host '13.13.13.13 (13.13.13.13)' can't be established.
ECDSA key fingerprint is SHA256:AbCdEfGhIjKlMnOpQrStUvWxYz1234567890+=.
Are you sure you want to continue connecting (yes/no)? yes
```

{% endstep %}

{% step %}

### Confirm your connection

Once authenticated, your local system prompt should change to your remote system prompt.

```
ubuntu@your-vps-name:~$
```

{% endstep %}

{% step %}

### Update your VPS

Just to make sure everything is nicely updated on your Linux VPS, we will perform some updates and upgrades.

During the upgrade process, you may encounter a <mark style="color:purple;">**PURPLE**</mark> dialog box asking you to select a few options. Since our node doesn’t require any special Debian configuration, just keep the default settings.

If you receive a purple box, on your keyboard hit the <kbd>tab</kbd> to move to the `OK` or `CONTINUE`, or `CONFIRM` options and then press <kbd>Enter</kbd>.

```
sudo update && sudo upgrade
```

{% endstep %}

{% step %}

### Reboot

Restart your VPS to apply any necessary updates that may require a reboot.
{% endstep %}

{% step %}

### Reconnect

Repeat the steps above to reconnect to your VPS, verify connectivity, confirm the upgrade was successful, and ensure everything is in order.
{% endstep %}
{% endstepper %}

***

## :notes: Tips & Best Practices

* **Keep your private key secure**: Never share it, and use a strong passphrase.
* **Use Keychain (macOS) or ssh-agent (Windows)** to avoid re-entering the passphrase each session. ( *Out of scope of this document* ).
* **Regularly update** your local OpenSSH client and your VPS’s **OpenSSH** server to the latest stable versions.


---

# 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.constellationnetwork.io/run-a-node/validator-node-guides/build-your-node/first-time-connection-guide.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.
