Ubuntu VPS kostenlos einrichten: von der Cloud zu SSH
Diese Anleitung führt von einem geeigneten Oracle-Cloud-Konto bis zum geprüften SSH-Zugriff auf eine neue Ubuntu-VM. Das Beispiel nutzt eine Always-Free-fähige AMD-Micro-Instanz. Es setzt freie Kapazität und ein ungenutztes Kontingent voraus; weder Anmeldung noch Bereitstellung lassen sich garantieren.
In dieser Anleitung
Vor dem Start: Konto, Region und Image prüfen
Verwende die Heimatregion deines Oracle-Kontos und prüfe dort die kostenlose Berechtigung. Das Beispiel zielt auf VM.Standard.E2.1.Micro, Ubuntu 24.04 amd64, 1 GB RAM und ein geeignetes Boot-Volume mit 50 GB. Kontrolliere die Einstufung von Image und Ressourcen vor dem Erstellen.
Wenn nur Ampere A1 angeboten wird, ist das eine andere Architektur. Folge dieser AMD-Anleitung dann nicht unverändert. Die Programmübersicht erklärt gemeinsame Grenzen und Zusatzkosten.
SSH-Schlüssel auf deinem Rechner vorbereiten
Die folgenden lokalen Befehle sind für Bash unter Linux, macOS oder WSL gedacht. Wähle einen noch nicht verwendeten Dateinamen und eine Passphrase. Überschreibe keinen vorhandenen privaten Schlüssel.
mkdir -p ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa -b 3072 -f ~/.ssh/oci-ubuntu-free
chmod 600 ~/.ssh/oci-ubuntu-free
cat ~/.ssh/oci-ubuntu-free.pubDer private Schlüssel bleibt auf deinem Rechner. Nur die Datei mit der Endung .pub wird in Oracle eingefügt. Sichere den privaten Schlüssel geschützt; ein Screenshot oder ein Upload in ein Supportformular ist kein geeigneter Aufbewahrungsort.
Ein eigenes Netzwerk für dieses Experiment
Verwende ein getrenntes VCN, beispielsweise 10.20.0.0/16, und ein öffentliches Subnetz 10.20.1.0/24. Für den direkten Zugriff brauchst du ein Internet Gateway, eine passende Route für 0.0.0.0/0 und eine öffentliche IPv4-Adresse an der VM.
Erlaube eingehend TCP 22 zustandsbehaftet nur von deiner aktuellen öffentlichen IP als /32. Der Quellport bleibt beliebig; 22 ist der Zielport. Prüfe alle zugeordneten Security Lists und Network Security Groups: Eine weitere breite Regel kann die gewünschte Einschränkung aufheben.
Entferne eine vorhandene allgemeine SSH-Regel nur aus der eigens für diesen Versuch vorgesehenen Liste und erst, wenn deine engere Regel korrekt ist. Ändere keine Netzwerkregeln fremder Instanzen.
Instanz anlegen und öffentliche Schlüssel hinterlegen
Wähle die geprüfte Form und das passende Ubuntu-Image. Kontrolliere Boot-Volume, Subnetz, Adresse und kostenlose Kennzeichnung in der Zusammenfassung. Füge den öffentlichen SSH-Schlüssel ein.
Dieses cloud-init-Beispiel lässt die Fingerprints der SSH-Hostschlüssel in der Konsole ausgeben. Es gehört in die Benutzerdaten der neuen VM, nicht in eine laufende Shell:
#cloud-config
ssh:
emit_keys_to_console: trueNotiere die OCIDs von Instanz und Boot-Volume sowie die öffentliche Adresse. Warte, bis die Bereitstellung abgeschlossen ist. Bei fehlender Kapazität nicht versehentlich auf eine kostenpflichtige Form ausweichen.
Serveridentität über einen unabhängigen Weg prüfen
Öffne die von Oracle bereitgestellte Konsolenverbindung beziehungsweise die Konsolenhistorie. Suche in der Ausgabe des ersten Starts nach den SSH HOST KEY FINGERPRINTS des Ubuntu-Gasts. Für den SSH-Dialog benötigst du den Fingerprint desselben Schlüsseltyps.
Der Fingerprint eines Cloud-Shell- oder Konsolen-Endpunkts ist nicht der Hostschlüssel deiner VM. Vergleiche die SHA256-Angabe des Gastservers über diesen vertrauenswürdigen Weg. Ein unbestätigtes ssh-keyscan vom selben Netzpfad beweist die Identität nicht.
Mit dem Ubuntu-Benutzer verbinden
Ersetze die Dokumentationsadresse 203.0.113.20 durch die öffentliche Adresse deiner Instanz. Für dieses Ubuntu-Image lautet der Benutzer ubuntu, nicht opc. Beim ersten Verbindungsaufbau bestätigst du den Hostschlüssel erst nach dem Vergleich.
ssh -o StrictHostKeyChecking=ask -i ~/.ssh/oci-ubuntu-free ubuntu@203.0.113.20Führe die folgenden Prüfungen in der entfernten Ubuntu-Shell aus. Sie zeigen Version, Architektur, RAM, freien Speicher, lauschende Dienste und vorhandene Firewall-Regeln.
cloud-init status --wait
cat /etc/os-release
dpkg --print-architecture
free -h
df -h /
sudo ss -lntp
sudo iptables -SBei einem Timeout prüfst du Adresse, Route und alle zugewiesenen Netzwerkregeln. Bei Permission denied kontrollierst du Benutzer und Schlüssel. Das SSH-Fehlerbild hilft, diese Ursachen getrennt zu behandeln.
Oracle-Firewall erhalten und erste Updates prüfen
Aktiviere auf Oracle-Ubuntu nicht einfach UFW und ersetze nicht pauschal die vorhandenen Regeln. Die Image-Konfiguration kann Regeln für wichtige Plattformdienste und iSCSI enthalten. Nutze zunächst die gezielten Oracle-Netzwerkregeln und berücksichtige die vorhandene Gast-Firewall.
sudo apt update
sudo apt upgradeFühre Updates nur auf der neuen Instanz durch und prüfe die Ausgabe. Teste einen zweiten SSH-Zugang, während die erste Verbindung geöffnet bleibt. Einen erforderlichen Neustart probierst du hier an der entbehrlichen Testinstanz; danach kontrollierst du Zugriff und Dienste erneut.
Kosten und Rückbau des Versuchs
Prüfe nach dem Anlegen die Ressourcenliste und später die Abrechnung. Das VM-Kontingent umfasst nicht automatisch jede zusätzlich angelegte Ressource. Sichere wichtige Dateien außerhalb der Instanz und prüfe die Kopie.
Beim Beenden der exakt notierten Instanz kann das Boot-Volume standardmäßig erhalten bleiben. Lösche dieses nur, wenn OCID und Inhalt eindeutig zu diesem Versuch gehören und keine Daten mehr benötigt werden. Kontrolliere auch ungenutzte Adressen und Sicherungen. Ein kontoweiter Löschbefehl ist kein geeigneter Rückbau.
Fragen und Antworten
Was tun, wenn keine kostenlose Kapazität frei ist?
Prüfe die zulässigen Optionen im Konto oder nutze vorerst eine lokale VM. Kostenpflichtige Formen sind kein gleichwertiger Ersatz für das kostenlose Kontingent.
Kann ich die Anleitung für A1 verwenden?
Die Netzwerkprinzipien ähneln sich, doch Architektur, Image und Ressourcen sind anders. Dieses konkrete Beispiel beschreibt AMD amd64.
Kann ich danach eine Website installieren?
Ja, wenn die Ressourcen passen. Beachte in der Einrichtungsanleitung ausdrücklich die Oracle-Ausnahme bei der Firewall.