$ whoami
guest — no session
Your SSH key belongs to your hankelsner.tech account, so this section needs you signed in.
One key is all you need. It proves to the server that your laptop is you —
no passwords, ever. Generate it here, install it once, and every
git clone / git push just works.
Install your key Debian / Ubuntu
-
Download the key
Use the Download private key button above. It lands in
~/Downloads/hankelsner_git_ed25519. Treat this file like a password — it IS your identity. -
Move it into
~/.sshand lock the permissionsSSH refuses keys that other users on the machine could read, so the
chmod 600(owner read/write only) is not optional.mkdir -p ~/.ssh && mv ~/Downloads/hankelsner_git_ed25519 ~/.ssh/ && chmod 600 ~/.ssh/hankelsner_git_ed25519
-
Tell SSH when to use it
Append this block to
~/.ssh/config(create the file if it doesn't exist). After this, plaingitcommands find the key on their own.Host git.hankelsner.tech User git IdentityFile ~/.ssh/hankelsner_git_ed25519 IdentitiesOnly yes -
Test it
ssh -T git.hankelsner.tech
A reply from the server (even one that says it only speaks git) means the key works.
Permission denied (publickey)means step 2 or 3 needs another look.
$ git ls-remote
fatal: no session
Repositories are tied to your hankelsner.tech account.
Every account gets its own namespace: <you>/.
You can clone anything on the server; you can push only to your own.
Push to a repo name that doesn't exist yet and the server creates it for you.
lowercase letters, digits, . _ - · max 64 chars
Push a folder you already have
Turn any existing folder into a repo on this server — pick one of your repos above to
get the exact remote address, or use the pattern
git@git.hankelsner.tech:<you>/<name>.git (it will be created on first push).
cd my-project git init -b main git add -A git commit -m "first commit" git remote add origin git@git.hankelsner.tech:<you>/my-project.git git push -u origin main
Git is a save system for folders. Every commit is a snapshot you can go back to, and a server like this one is where those snapshots live so no single laptop can lose them. Twenty minutes here covers everything you'll use daily.
1 · Install git Debian / Ubuntu
sudo apt update && sudo apt install -y git
git --version
2 · Tell git who you are
Every snapshot is stamped with a name and email. Set them once — git remembers
(they're stored in ~/.gitconfig).
git config --global user.name "Your Name" git config --global user.email "you@hankelsner.tech"
3 · The daily loop
Get a copy of a repo (from the repos tab, every repo has a copyable clone line):
git clone git@git.hankelsner.tech:hank/example.git cd example
Then work in cycles: see what changed, stage it, snapshot it, send it up.
git status
git add -A
git commit -m "describe what you changed"
git push
git pull
git log --oneline
4 · Branches — try things without breaking main
A branch is a parallel line of snapshots. Experiment on a branch; if it works, merge
it back into main. If it doesn't, delete it and nothing happened.
git switch -c my-experiment
git branch
git switch main
git merge my-experiment
git push -u origin my-experiment
5 · Where keys live, and why chmod 600
SSH keys sit in ~/.ssh/ — a hidden folder in your home directory. Each key
is a pair: the private half (hankelsner_git_ed25519) stays on your
machine and is never shared; the public half (.pub) is what the server
keeps to recognize you.
chmod 600 sets the file so only your user can read or write it.
SSH checks this and will refuse a key with looser permissions — a private key that any
user on the machine could read is a key that's already leaked. If SSH ever complains
about UNPROTECTED PRIVATE KEY FILE, the fix is:
chmod 700 ~/.ssh && chmod 600 ~/.ssh/hankelsner_git_ed25519
Generate and install your key in the my-key tab — the whole thing is four steps.
Programs built in-house, packaged as normal Debian packages. Install them
like anything else on your system — through apt.
Recommended · add the apt depot once auto-updates
This teaches your system where our packages live and how to verify they're really
ours (the depot is signed; the first command installs its key). From then on, installed
programs update along with the rest of your system via sudo apt upgrade.
curl -fsSL https://git.hankelsner.tech/apt/key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/hankelsner.gpg echo "deb [signed-by=/usr/share/keyrings/hankelsner.gpg] https://git.hankelsner.tech/apt ./" | sudo tee /etc/apt/sources.list.d/hankelsner.list sudo apt update && sudo apt install splice-terminal
swap splice-terminal for any package name listed below
Available packages
After installing
These packages register a desktop entry, so once the install finishes an app icon appears in your launcher — press Super (the Windows key), open the Activities grid, and it's there like any other program. Each package card above also shows the terminal command if you'd rather launch it by hand.