Rahul, remote setup

Enter the password MSJP gave you.

Your remote setup

Goal: from your Mac, anywhere in the world, open a secure connection to MSJP's server and work in VS Code on it. Do the steps in order. Every step says why, because the point is to understand it, not to copy it.

Good to know: your Mac is fine for all of this. The Mac Terminal is Unix, so ssh and ssh-keygen are already installed and work exactly like Linux. In VS Code, the terminal is a Mac terminal until you connect with Remote-SSH; after that it is the Linux terminal on the server (the prompt will say rahul@msjp-server-lab).

Step 1 · Install Tailscale

Go to tailscale.com/download, install it on your Mac and sign in with your own account (Google is fine).

Why: the server is not open to the internet at all. Tailscale builds a private encrypted tunnel between your Mac and the server, so bots and sketchy networks never see an open port. It also works on strict ISPs in India because it can fall back to a relay over port 443.

Step 2 · Make your key pair

Open Terminal (Cmd+Space, type Terminal). Paste this. When it asks for a passphrase, set one. Do not leave it empty.

ssh-keygen -t ed25519 -C "rahul-mac"
Why: a key pair is two files. The private one (id_ed25519) never leaves your Mac and you never send it to anyone. The public one (id_ed25519.pub) is like a lock you hand to MSJP; only your private key opens it. The passphrase protects the key if your Mac is ever stolen.

Step 3 · Send MSJP your public key

cat ~/.ssh/id_ed25519.pub

Send the one line it prints (starts with ssh-ed25519) to MSJP on WhatsApp. It is safe to send. Never send the file called id_ed25519 without .pub.

Then wait. MSJP will tell you when the server is ready, share the machine to your Tailscale account, and send you the server's fingerprint.

Step 4 · Accept the Tailscale share

MSJP will share the server with your Tailscale email. Open the invite and accept it. In the Tailscale menu you should then see the machine msjp-server-one.

Step 5 · Save the connection shortcut and test it

mkdir -p ~/.ssh && chmod 700 ~/.ssh
cat >> ~/.ssh/config <<'EOF'
Host msjp-lab
    HostName 100.87.68.11
    User rahul
    IdentityFile ~/.ssh/id_ed25519
    UseKeychain yes
    AddKeysToAgent yes
    ServerAliveInterval 30
    ServerAliveCountMax 6
EOF
ssh msjp-lab
Why: the config file gives the long connection a short name. ServerAlive... keeps the connection from dropping on ISPs that kill quiet sessions. The first time, SSH shows the server's fingerprint and asks yes/no. Compare it with the fingerprint MSJP sent you. If it is different, answer no and tell MSJP. That check is what stops someone in the middle from pretending to be the server.

Success looks like a prompt: rahul@msjp-server-lab:~$. Type exit to leave.

Step 6 · Connect with VS Code

  1. Install the extension Remote - SSH (by Microsoft).
  2. Press F1, choose Remote-SSH: Connect to Host, pick msjp-lab.
  3. Choose Open Folder and open /home/rahul/work.
  4. Open a terminal in VS Code (Ctrl+backtick). It is now a Linux terminal on the server.

Your first project · 6 websites in 2 sets of 3

Your first job is to design and build three different website designs for each of two people. Make them completely your own. You are not being shown anything MSJP built for them, on purpose: the point is to see how you look at a brand and what you come up with.

Set 1 · Kashyap, a physiotherapist in Toronto
Instagram: instagram.com/kashyap_physio
His clinic booking page: mobilityhouse.janeapp.com (Mobility House)
Make 3 designs for his own physio practice website.
Set 2 · Vijayita, founder of SAWN Toronto (South Asian Women's Network)
Instagram: instagram.com/sawn.toronto
Their link tree: linktr.ee/sawn.toronto
Make 3 designs for a website for the network (events, community, membership).
How to start, for each set: spend time on the Instagram page first. Look at the colours, the photos, the tone of the words, what they post about and who they speak to. Write down in a few lines what the brand feels like before you open an editor. Then design three genuinely different directions, not one design in three colours. Every site must work on a phone first.

Contact rules: the Instagram pages and links above are public and are all you need. Do not message Kashyap or Vijayita, or ask them for anything, yourself. All contact goes through MSJP. Do not show your work to anyone else until MSJP says so.

Where to put it: build inside /home/rahul/work on the server, one folder per design (for example kashyap-1, kashyap-2, kashyap-3, sawn-1, and so on). MSJP will tell you how you are sharing previews.

Working agreement · sign by November 8

Before you start, read and sign the Working Agreement. It covers: your work is unpaid while you learn, commission comes later and only once it is agreed in writing, who owns what you build, keeping everything private, no contacting clients yourself, and how your server access works.

Read and sign the agreement

Draw your signature on the page, then download your signed PDF and send it to MSJP on WhatsApp or email. The link stops accepting signatures after November 8, 2026.

Rules of the road

  1. Sign the working agreement first. Work only inside /home/rahul/work. You cannot see MSJP's other files, and that is on purpose.
  2. Never share your private key or passphrase. If your Mac is lost or stolen, tell MSJP the same day and he cuts your access in one step.
  3. Only connect with Tailscale running. If it will not connect, check the Tailscale icon says Connected, then message MSJP the exact error text.
  4. Stuck? Ask yourself what happened, what you expected, and what the error literally says, then message MSJP with that.

Quick fixes

"Permission denied (publickey)": MSJP has not added your key yet, or you sent the wrong file. Re-run Step 3 and compare.

"Connection timed out": Tailscale is off or not accepted yet. Open Tailscale, make sure it is connected and that you see msjp-server-one.

"Host key verification failed": the server fingerprint changed. Stop and tell MSJP. Do not delete anything to get past it.