Eine eigene Hackschule-Subdomain ist öffentlicher Webspace für deine fertige, statische Website: HTML, CSS, Bilder und JavaScript, das im Browser läuft. Im Gegensatz zu den Shared Live Apps ist sie auch ohne Anmeldung im Workspace erreichbar und bleibt online, wenn dein Workspace nicht läuft. Das Angebot ist kostenlos; du bekommst eine Subdomain von hackschule.de, keine selbst registrierte Domain.
Für die Subdomain unterschreibst du eine Nutzungsvereinbarung; wenn du noch minderjährig bist, unterschreibt auch eine erziehungsberechtigte Person. Druck sie aus, lass sie unterschreiben und gib sie bei deiner Lehrkraft ab. Sie erklärt auch, dass deine Website öffentlich und nicht nur innerhalb des Workspace sichtbar ist und was gespeichert wird.
Im Workspace ist ~ dein Ordner /workspace, ~/.ssh also /workspace/.ssh. Hast du schon einen Schlüssel für Git eingerichtet (Handbuch: Git-Server), nimmst du denselben. Überprüfe, ob du bereits ein Schlüsselpaar hast:
ls ~/.ssh/*.pub
Falls nicht, erstelle ein neues Schlüsselpaar:
ssh-keygen
Bestätige den Speicherort, eine Passphrase ist nicht nötig (du kannst aber eine setzen, wenn du möchtest). Das Schlüsselpaar wird in ~/.ssh/id_ed25519 und ~/.ssh/id_ed25519.pub gespeichert.
id_ed25519 (privat) und id_ed25519.pub (öffentlich). Teile niemals deinen privaten Schlüssel! Den öffentlichen Schlüssel kannst du jedoch mit anderen teilen, um ihnen Zugriff auf deine Ressourcen zu gewähren.
Lass dir den öffentlichen Schlüssel anzeigen:
cat ~/.ssh/id_ed25519.pub
Das sollte z. B. so aussehen:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHx1j3zKyFZybh2BRyiaiGj7KceAPyzHGy6gM0gHp43j abc@757c63b27d58
Wenn die Einverständniserklärung (sofern erforderlich) abgegeben ist, schicke den kompletten öffentlichen Schlüssel an specht@gymnasiumsteglitz.de und gib an, welche Subdomain du haben möchtest. Du bekommst als Antwort eine E-Mail, in der Folgendes steht:
cobolultras.hackschule.de)max)Wenn deine Subdomain eingerichtet ist, kannst du sie in deinem Browser aufrufen. Du wirst aber noch nichts sehen, da du noch keine Dateien hochgeladen hast.
Bevor du Dateien hochladen kannst, musst du deine SSH-Konfiguration anpassen. Erstelle die Datei ~/.ssh/config:
touch ~/.ssh/config
Öffne sie im Editor und füge Folgendes hinzu:
Host cobolultras.hackschule.de User max IdentityFile ~/.ssh/id_ed25519 Port 2222
Versuche nun, dich mit dem Server zu verbinden:
ssh cobolultras.hackschule.de
Wenn du dich zum ersten Mal mit dem Server verbindest, wirst du gefragt, ob du dem Host vertraust. Gib yes ein und drücke Enter.
abc@0ea48f711732:~/website-test$ ssh cobolultras.hackschule.de The authenticity of host '[cobolultras.hackschule.de]:2222 ([138.199.166.247]:2222)' cannot be established. ED25519 key fingerprint is SHA256:G71MgKyMMzC8lD3LwVsct3eXTJEDzjj4MetU43NcfQs. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])?
Du befindest dich jetzt auf einem anderen Server, aber auch hier kannst du ganz normal mit ls und cd arbeiten. Du findest ein Verzeichnis, das so heißt wie deine Subdomain (z. B. cobolultras). Das ist der Ort, an dem du deine Dateien ablegen kannst. Du kannst in dieses Verzeichnis wechseln:
cd cobolultras
Du kannst auch Dateien erstellen, z. B. eine index.html:
echo "<h1>Hallo Welt</h1>" > index.html
Diese Datei kannst du jetzt in deinem Browser aufrufen, indem du die URL http://cobolultras.hackschule.de eingibst. Du solltest den Text »Hallo Welt« sehen.
Um Dateien auf deinen Server hochzuladen, kannst du rsync verwenden. Das ist ein Programm, das Dateien zwischen zwei Computern synchronisiert. Du kannst es verwenden, um Dateien von deinem lokalen Computer auf den Server zu kopieren. Gehe dazu in das Verzeichnis, das du hochladen möchtest. Wenn du z. B. die Dateien in /workspace/website-test hast, gehe in dieses Verzeichnis:
cd /workspace/website-test
Anschließend kannst du rsync verwenden, um die Dateien auf den Server zu kopieren. Ersetze max und cobolultras durch deinen Benutzernamen und deine Subdomain:
rsync -avz . max@cobolultras.hackschule.de:cobolultras
Das -a steht für »archive« und sorgt dafür, dass die Dateien rekursiv (also mit allen Unterverzeichnissen) kopiert werden und die Dateiberechtigungen beibehalten werden. Das -v steht für »verbose« und zeigt dir an, welche Dateien kopiert werden. Das -z steht für »compress« und sorgt dafür, dass die Daten komprimiert übertragen werden, was die Übertragungsgeschwindigkeit erhöht.
Wenn du rsync mehrfach ausführst, werden nur die Dateien übertragen, die sich geändert haben. Das ist besonders nützlich, wenn du an deiner Website arbeitest und immer wieder neue Dateien hochladen möchtest.
Viel Spaß beim Programmieren!