Första timmen med din nya VPS: komplett guide från bar burk till säker och användbar (gör din OpenClaw säkrare)
Din nyinköpta VPS är som en olåst dörr – script kiddies över hela världen står och bultar på. Den här guiden visar hur du låser dörren ordentligt, så att din openclaw inte rymmer och ställer till med skit.
0. Innan vi sätter igång
Du har precis skaffat en VPS, känner dig peppad och har fått din IP och ditt root-lösenord. Vad gör du sen?
Många hoppar direkt in och börjar installera mjukvara och rulla ut sina projekt.
Det är en farlig vana.
Din VPS har en publik IP, vilket betyder att vem som helst i hela världen kan försöka koppla upp sig mot den. Och med standardinställningarna ser det ut så här:
- Porten är öppen för alla: 22
- Användarnamnet är det välkända root
- Det enda som står mellan dig och kaos är ett enda lösenord
Varje dag skannar otaliga automatiserade skript IP-intervall och försöker brutea sig in med vanliga lösenord. Din server är under attack från sekunden den går live.
Så, allra första grejen du ska göra när du fått tag på din VPS är inte att installera mjukvara – det är att säkra upp den.
1. Målet med den här guiden
Målet med den här artikeln är:
- ✅ Skapa säker fjärråtkomst: SSH-nyckelinloggning + icke-standardport
- ✅ Skapa en vanlig användare: undvik att köra direkt som root
- ✅ Sätt upp en brandvägg: öppna bara de portar du faktiskt behöver
- ✅ Slå på nätverksoptimering: BBR får nätverket att flyga
- ✅ Stoppa brute force-attacker: fail2ban bannar automatiskt elaka IP:n
När du är klar med det här har din VPS en gedigen grund, och du kan lugnt börja rulla ut tjänster i den.
2. Planering och funderingar
Varför göra alla dessa inställningar?
En nyinköpt VPS är som en ny lägenhet rakt från byggentreprenören:
| Standardläge | Risk | Vår lösning |
|---|---|---|
| Inloggning som root | För hög behörighet, stor risk vid misstag | Skapa vanlig användare + sudo |
| Lösenordsinloggning | Kan knäckas med brute force | SSH-nyckel-inloggning |
| Standardport 22 | Uppsöks aktivt av skanners | Byt till icke-standardport |
| Brandvägg avstängd | Alla portar exponeras utåt | UFW släpper endast igenom nödvändiga portar |
| Ursprungligt nätverk | Hög paketförlust, hög latens | BBR-kongestionskontroll |
Övergripande flöde

Vi följer den här ordningen, och jag kommer att förklara varför vi gör varje steg.
3. Steg för steg
3.1 Första inloggning och systemuppdatering
Hämta serverns IP
När du har köpt din VPS kommer leverantören att ge dig:
- IP-adress: till exempel
192.168.1.100 - Port: vanligtvis
22(vissa leverantörer byter till en annan port) - Användarnamn: oftast
root - Lösenord: en slumpmässigt genererad teckensträng

Anslut via SSH
Mac / Linux-användare: öppna terminalen och kör direkt:
1 | ssh root@你的服务器IP |
Windows-användare:
- Windows 10/11 har OpenSSH inbyggt, så du kan köra kommandot ovan direkt i PowerShell eller CMD
- Annars kan du använda verktyg som Termius eller MobaXterm
Första gången du ansluter får du en fråga om att bekräfta fingeravtrycket:
1 | The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established. |
Den frågar i princip: “Jag känner inte igen den här maskinen, är du säker på att du vill ansluta?”
Skriv yes och tryck på Enter. Skriv sedan in lösenordet (obs: inga tecken syns när du skriver, det är en vanlig säkerhetsfunktion), och tryck på Enter.

Ser du något i den här stilen betyder det att du är inloggad:
1 | Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.x.x-x-generic x86_64) |
💡 Varför ska du dubbelkolla fingeravtrycket?
Det är för att skydda dig mot “man-in-the-middle-attacker”. Genom att spara serverns fingeravtryck första gången du ansluter kan du känna igen om någon försöker imitera din server senare – om fingeravtrycket plötsligt ändras vet du att något är lurt.

Lär känna din server
När du har loggat in är det läge att kolla läget och se vad din maskin faktiskt har under huven:
1 | # 查看系统版本 |

Spara den här informationen någonstans, du kommer behöva den när du ska felsöka senare.
Uppdatera systemet
När du kollat av servern är det dags för det första riktiga ärendet: att uppdatera systemet. Systemavbilden på en ny server kan vara flera månader gammal, och det kan ha släppts en hel del säkerhetsuppdateringar under tiden:
1 | # 更新软件包列表 + 升级所有软件 + 清理 |
Så här funkar flaggorna:
apt update: uppdaterar paketindexetapt full-upgrade: uppgraderar alla paket, inklusive kärnan-y: svarar automatiskt ja på allt, så du slipper knappa in “yes”apt autoremove: städar bort beroenden som inte längre behövsapt autoclean: rensar cachen med nedladdade installationspaket

⏱️ Det här steget kan ta några minuter beroende på hur mycket som ska uppdateras. Ibland poppar det upp en fråga under tiden – bara följ instruktionerna på skärmen så går det bra.
Kolla om du behöver starta om
Efter en kärnuppdatering brukar du behöva starta om servern för att den ska träda i kraft:
1 | # 检查是否需要重启 |

Om den säger att en omstart krävs:
1 | reboot |
Efter omstarten får du SSH:a in igen.
Installera standardverktyg
1 | apt install -y sudo curl wget git vim htop tree unzip net-tools ufw fail2ban neofetch |
Vad är de här verktygen till för?
| Verktyg | Användning | |
|---|---|---|
sudo |
Låter vanliga användare köra admin-kommandon | |
curl / wget |
Ladda ner filer | |
git |
Versionshantering | |
vim |
Textredigerare | |
htop |
Snyggare processövervakning | |
tree |
Visar katalogstruktur som ett träd | |
net-tools |
Nätverksverktyg (ifconfig, netstat m.m.) | |
ufw |
Enkel och smidig brandvägg | |
fail2ban |
Skydd mot brute force-attacker | |
neofetch |
Snygg visning av systeminfo | |
![]() |
3.2 Skapa en icke-root-användare
Varför inte köra direkt som root?
root-användaren har alldeles för mycket makt. Ett litet misstag med rm -rf / och allt är borta. För vardagliga sysslor bör du använda en vanlig användare och bara ta till administratörsrättigheter via sudo när det verkligen behövs.
En龙虾 (openclaw) är ju ett riktigt monster – du vågar väl inte ge den root-access?
Skapa användaren
1 | # 创建用户(把 ittinker 换成你想要的用户名) |
Systemet ber dig ställa in ett lösenord och lite annan info:
1 | New password: # 输入密码(不会显示) |

Ge sudo-rättigheter
1 | # 把用户加入 sudo 组, ittinker 换成你自己上面创建的那个用户 |
Dubbelkolla att det funkar:
1 | # 切换到新用户 ittinker 换成你自己上面创建的那个用户 |
Om utskriften blir root har sudo konfigurerats korrekt.

💡 Smartis
Skriv
exitför att byta tillbaka till root-användaren. I nästa steg fortsätter vi att ställa in allt som root, och byter till den vanliga användaren när konfigurationen är klar.
3.3 Ställ in inloggning med SSH-nyckel
Nyckelautentisering vs. lösenordsautentisering

Att logga in med nycklar är mycket säkrare än med lösenord:
- Lösenord kan brute-forceas, nycklar är i princip omöjliga att knäcka
- Slipper knappa in lösenordet varje gång – mycket smidigare
- Även om lösenordet läcker kommer ingen in utan din privata nyckel
Steg 1: Generera nyckelparet lokalt
Kör detta på din egen dator (inte på servern):
1 | # 生成 ED25519 密钥(推荐,更安全更快) |
Du får den här uppmaningen:
1 | Enter file in which to save the key (/Users/你/.ssh/id_ed25519): |
Tryck bara Enter för att använda standardsökvägen. Här använder vi ./ittinker , vilket betyder att filen sparas i den aktuella mappen med namnet ittinker
1 | Enter passphrase (empty for no passphrase): |
Du kan lösenordsskydda nyckeln (ett extra lager säkerhet), eller trycka Enter direkt för att hoppa över det.

När nyckeln är genererad hittar du två filer i mappen ~/.ssh/ (nedan är standardfilnamnen, så här blir det om du tryckte Enter tidigare):
id_ed25519: privat nyckel, absolut inte får läcka ut!id_ed25519.pub: publik nyckel, ska laddas upp till servern
💡 ed25519 vs RSA
ed25519är den algoritm som rekommenderas idag, den är säkrare och har kortare nycklar än traditionell RSA. Om ditt system är för gammalt och inte stöder den kan du användassh-keygen -t rsa -b 4096.
En liten detalj: nycklarna som ed25519 genererar är ganska små, medan RSA-filerna är stora. Jag frågade AI och fick veta att storleken inte spelar någon roll, det beror bara på algoritmen.
Steg två: Ladda upp den publika nyckeln till servern
Metod A: Använd ssh-copy-id (rekommenderas)
1 | # 在你的电脑上执行 |
När du har skrivit in lösenordet kopieras den publika nyckeln automatiskt till servern.

Metod B: Kopiera manuellt
Om ssh-copy-id inte fungerar kan du göra det manuellt:
1 | # 1. 在你的电脑上,查看公钥内容 |
Kopiera det som skrivs ut (en lång textsträng som börjar med ssh-ed25519).
1 | # 2. 在服务器上,为新用户创建 .ssh 目录, ittinker 换成你刚刚创建的用户名 |
⚠️ Rättigheter är superviktigt!
SSH är väldigt petigt med filrättigheter:
.sshkatalog: 700 (bara din egen användare har tillgång)authorized_keysfil: 600 (bara din egen användare kan läsa och skriva)Är rättigheterna fel kommer SSH att vägra använda nyckeln vid inloggning.
Steg 3: Testa nyckelinloggning
Öppna ett nytt terminalfönster (låt det ursprungliga vara öppet ifall du råkar ställa in fel så du kan åtgärda det), och testa att logga in med nyckel:
1 | ssh ittinker@你的服务器IP |
Om du kan logga in utan att behöva skriva in lösenord så är nyckeln korrekt konfigurerad! 🎉
(Om du har satt ett passphrase för din privata nyckel kommer du att bli ombedd att skriva in det, det är helt normalt)

Här la vi till en -i-parameter, för vi har inte den här nyckeln i standardsökvägen, utan i den aktuella sökvägen. Om vi inte anger det kommer systemet att använda standardnyckeln.
3.4 Säkra upp SSH
Nu när nyckelinloggning fungerar är det dags att härda SSH:
- Ändra standardporten (slipper portscanners)
- Stäng av lösenordsinloggning
- Förbjuda root från att logga in direkt
Redigera SSH-konfigurationsfilen
1 | # 备份原配置 |

Leta upp och ändra följande inställningar (vissa kan vara utkommenterade, ta bort # i början):
1 | # 修改端口(选一个 1024-65535 之间的数字) |

Spara och avsluta (ctrl + o).
I Nano sparar du med ctrl + o. Den frågar efter filnamnet, tryck bara på Enter. För att avsluta trycker du ctrl + x.
Starta om SSH-tjänsten
1 | systemctl restart sshd.service |
⚠️ Viktig påminnelse!
Stäng inte det aktuella terminalfönstret! Testa först i ett nytt fönster att den nya konfigurationen fungerar och att du kan logga in:
1 ssh -p 22000 yourname@你的服务器IPOm det funkar kan du stänga det gamla fönstret. Om du inte kommer in kan du fortfarande fixa konfigurationen i det gamla fönstret.
Om du har köpt en lättviktsserver är chansen stor att du inte kan ändra den här porten, men en traditionell ECS går bra att ändra. Tänk på det.
3.5 Konfigurera UFW-brandväggen

UFW (Uncomplicated Firewall) är Ubuntus standardbrandvägg. Den är enkel att ställa in men ändå riktigt kraftfull.
Grundläggande konfiguration
1 | # 设置默认策略:拒绝所有入站,允许所有出站 |
Aktivera brandväggen
1 | ufw enable |
Du får en fråga som ser ut så här:
1 | Command may disrupt existing ssh connections. Proceed with operation (y|n)? |
Skriv y för att bekräfta.
Kontrollera statusen
1 | ufw status verbose |

23022 var bara en slarv från min sida, ni kör bara med de värden som passar er egen situation
Utskriften ser ut ungefär så här:
1 | Status: active |
Snabbreferens för vanliga kommandon
1 | # 查看状态 |
3.6 Slå på BBR-acceleration
BBR (Bottleneck Bandwidth and Round-trip propagation time) är en TCP-styralgoritm utvecklad av Google som kan ge nätverksprestandan ett rejält lyft.
Slå på med ett klick
1 | # 添加 BBR 配置 |
Kontrollera att det är aktiverat
1 | # 查看当前拥塞控制算法 |
Utskriften bör vara:
1 | net.ipv4.tcp_congestion_control = bbr |
1 | # 确认 BBR 模块已加载 |
Utskriften ser ut ungefär så här:
1 | tcp_bbr 20480 3 |
💡 Effekten av BBR
När du har slagit på BBR, särskilt i miljöer med instabilt nätverk eller hög fördröjning, kommer du garanterat att märka:
- Snabbare nedladdningshastigheter
- Mer responsiva SSH-sessioner
- Snabbare webbsideladdningar

3.7 Konfigurera fail2ban för att skydda mot brute force-attacker
fail2ban håller koll på loggarna och bannlyser automatiskt IP-adresser som misslyckas med att logga in för många gånger.
Grundläggande konfiguration
1 | # 复制默认配置(不要直接修改 jail.conf) |
Leta upp avsnittet [sshd] och se till att följande inställningar är på plats:
1 | [sshd] |

Starta tjänsten
1 | # 重启 fail2ban |
Kolla statusen
1 | # 查看 fail2ban 状态 |

Utskriften ser ut ungefär så här:
1 | Status for the jail: sshd |
Vanliga kommandon
1 | # 手动封禁 IP |
3.8 [Valfritt] Hantera flera servrar med SSH Config
Om du har flera servrar är det ganska tråkigt att skriva in ssh -p 22000 user@ip varje gång. Du kan förenkla det rejält med hjälp av SSH Config.
Konfigurationsfil
Redigera ~/.ssh/config på din lokala dator:
1 | vim ~/.ssh/config |
Lägg till konfigurationen:
1 | # 第一台服务器 |
Så använder du det
Nu kan du koppla upp dig direkt med ett alias:
1 | # 连接第一台服务器 |
Slipper du att memorera IP, port och användarnamn!
3.9 [Valfritt] Tillåt endast Cloudflare
Om din sajt ligger helt och hållet bakom Cloudflare kan du ställa in så att port 80/443 enbart tillåter Cloudflares IP-adresser – det ger dig ett extra lager av säkerhet.
⚠️ OBS: För att den här konfigurationen ska funka måste din domän redan vara kopplad till Cloudflare CDN.
Automatiskt konfigurationsskript
1 | # 下载脚本 |
Det här skriptet kommer att:
- Hämta de senaste IP-undersnäten direkt från Cloudflare
- Lägg till UFW-regler så att bara dessa IP-adresser når port 80/443
- Ladda om UFW
Sätt upp schemalagd uppdatering
Cloudflares IP-undersnät kan ändras med tiden, så vi ställer in en automatisk uppdatering varje vecka:
1 | # 添加 cron 任务(每周一凌晨执行) |
3.10 Ställ in tidszon
Standardtidszonen är antagligen UTC. Byt till din egen tidszon så är det mycket lättare att läsa loggarna:
1 | # 查看当前时区 |

3.11 [Valfritt] Konfigurera automatiska säkerhetsuppdateringar
Låt systemet sköta installationen av säkerhetspatchar automatiskt, så slipper du göra allt manuellt varje gång:
1 | # 安装自动更新工具 |
Välj “Yes” för att aktivera automatiska uppdateringar.
💡 Den här funktionen installerar säkerhetsuppdateringar automatiskt, men uppgraderar inte till en ny stor version, så det är ganska säkert.
4. Sammanfattning
Checklista för initieringen
När du har ställt in allt ovan, kör igenom den här checklistan för att dubbelkolla:
| Kontrollpunkt | Kommando | Förväntat resultat |
|---|---|---|
| Systemet är uppdaterat | apt update && apt list --upgradable |
Inga paket att uppgradera |
| Vanlig användare kan sudo | sudo whoami |
Skriver ut root |
| Nyckel-inloggning funkar | ssh yourname@ip -p port |
Logga in utan lösenord |
| Lösenordsinloggning är avstängd | grep PasswordAuth /etc/ssh/sshd_config |
PasswordAuthentication no |
| SSH-porten är ändrad | grep Port /etc/ssh/sshd_config |
Porten du valde |
| Brandväggen är aktiverad | ufw status |
Status: active |
| BBR är påslaget | sysctl net.ipv4.tcp_congestion_control |
= bbr |
| fail2ban körs | systemctl status fail2ban |
active (running) |
| Tidszon är inställd | timedatectl |
Asia/Shanghai eller din egen tidszon |
| Lokal SSH Config | cat ~/.ssh/config |
Serveralias är konfigurerat |
Viktiga filplatsningar
1 | /etc/ssh/sshd_config # SSH 服务端配置 |
Säkerhetsbest practices
- Uppdatera systemet regelbundet:
apt update && apt upgrade - Kolla inloggningsloggar regelbundet:
lastb(misslyckade inloggningar),last(lyckade inloggningar) - Håll koll på fail2ban-bannlysningar
- Backa viktiga config-filer innan du ändrar dem
5. Felsökningsloggar
Q1: Nyckel-inloggningen misslyckas, du måste ändå knappa in lösenordet?
Möjliga orsaker:
-
Rättighetsproblem (vanligast)
1
2
3# 检查并修复权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys -
Den offentliga nyckeln kopierades fel
1
2
3# 检查 authorized_keys 内容
cat ~/.ssh/authorized_keys
# 应该是一行完整的公钥,以 ssh-ed25519 或 ssh-rsa 开头 -
SELinux strular (på CentOS/RHEL-system)
1
restorecon -Rv ~/.ssh
Q2: Kan du inte ansluta efter att ha bytt port?
Felsökningssteg:
-
Dubbekolla att den nya porten är öppen i brandväggen:
1
ufw status | grep 你的端口
-
Bekräfta att SSH-konfigurationen stämmer:
1
grep Port /etc/ssh/sshd_config
-
Kontrollera att SSH-tjänsten körs:
1
systemctl status sshd
-
Om du inte kommer in alls, logga in via din leverantörs VNC/konsol och laga det där.
Q2.5: Portändringen ger överhuvudtaget ingen effekt? (Molnleverantörers lätta servrar)
Symptom: Du ändrade /etc/ssh/sshd_config, men efter att ha startat om tjänsten lyssnar den fortfarande på port 22 och den nya porten fungerar inte.
Diagnosmetod:
bash
1 | # 查看是谁在监听 22 端口 |
Om utdatan ser ut ungefär så här:
1 | tcp 0 0.0.0.0:22 0.0.0.0:* LISTEN 1/init |
Betyder det att port 27 lyssnas på av init (PID 1) och inte av sshd-processen.
Varför: Vissa molnleverantörers “lightweight application servers” eller “container instances” har sin SSH proxad på plattformsnivå, så din sshd-konfiguration inuti servern fungerar inte.
Lösning:
| Instanstyp | Hur du ändrar SSH-porten |
|---|---|
| Traditionell ECS | Ändra i sshd_config ✅ |
| Lightweight-server | Måste kanske ändras i molnets kontrollpanel, eller stöds inte alls |
| Container-instans | Stöds oftast inte att ändras |
Om din instans inte stöder att byta port är andra säkerhetsåtgärder ännu viktigare:
- ✅ Skapa en vanlig användare + inaktivera root-inloggning
- ✅ SSH-nyckelinloggning + inaktivera lösenordsinloggning
- ✅ fail2ban mot brute force-attacker
Om du får dessa på plats är säkerheten fortfarande hög.
Q3: fail2ban har bannlyst mig själv?
1 | # 用 VNC 登录后解封 |
Q4: Kan inte nå webbplatsen efter att UFW aktiverats?
1 | # 检查 80/443 是否开放 |
Q5: Kommandot säger att sudo inte hittas?
Debian minimal-installation kanske inte har sudo, installera med root:
1 | apt install sudo |
6. One-click initieringsskript (att använda när du känner dig bekväm)
När du är bekant med stegen ovan kan du använda det här skriptet för att snabbt initiera.
⚠️ OBS: Innan du kör skriptet, se till att du redan har din SSH-publiknyckel redo.
1 |
|
7. Hur mycket säkrare har din server blivit egentligen?
| Steg | Vad du gjorde | Varför det är viktigt |
|---|---|---|
| Uppdatera systemet | Installerade de senaste patcharna | Lagar kända sårbarheter |
| Skapa ny användare | Slutar använda root direkt | Minskar risken för misstag |
| SSH-nycklar | Bytte till nycklar istället för lösenord | Går inte att brute-forcea |
| Ändra port | Undviker standardport 22 | Minskar chansen att bli skannad |
| Inaktivera lösenord | Tillåter bara inloggning med nyckel | Eliminerar lösenordsattacker helt |
| Inaktivera root | Root kan inte logga in direkt | Ökar svårigheten för angripare |
| UFW-brandvägg | Öppnar bara nödvändiga portar | Minskar angreppsytan |
| BBR-acceleration | Optimerar nätverksprestanda | Snabbar upp åtkomsten |
| fail2ban | Bannar automatiskt elaka IP-adresser | Förhindrer ihärdiga attacker |
När du har kört igenom allt detta har din server redan passerat 90% av alla VPS:ar när det gäller säkerhet.
Smygtitt på nästa del
I nästa avsnitt kör vi en snabbreferens för konfiguration av SSH-nyckel-inloggning, där vi dyker djupare in i:
- Hur du genererar nycklar på olika operativsystem
- Hantering av flera nycklar
- Konfiguration av SSH Agent
- Inställningar för vanliga SSH-klienter
Senast uppdaterad: januari 2026
Serie om verktygslådan för solo-utvecklare, följ gärna med!




