Webseite auf unseren Server laden
Sie bekommen ein Usernamen und Login auf unserem Webserver https://ofi.tech-lab.ch (steht im E24 an der KSBG).
Damit können Sie Dateien auf und vom Webserver transferieren.
Zu dieser Lerneinheit gibt es einen Screencast, oder auch auf Sharepoint.
scp (secure copy)
Auf der Kommandozeile (git-bash) gehen Sie in den Freifach Programmieren Verzeichnis.
- Stellen Sie sicher, dass Sie sich im Verzeichnis befinden, worin sich das Vezeichnis
hello
mit Ihrer ersten Webseite befindet. - Kopieren Sie das ganze Verzeichnis mit
scp -P 23 -r hello hans.wurst@ofi.tech-lab.ch:.
Bei der aller ersten Verbindung werden Sie gefragt, ob der Fingerprint vom Server-Schlüssel korrekt ist: ED25519 key fingerprint is SHA256:wAFwuSzfShOE3Oqhm0Hdo1JtFS91pUKFSf8kaerE0sc.
Der SSH-Port (normalerweise 22) ist im Tech-Lab schon von einem anderen Server belegt. Darum -P 23
(oder 40199, falls der Port im Kanti-Netzwerk gesperrt sein sollte).
Das -r
steht für «rekursiv», d.h. alle Verzeichnisse mit Inhalt und Unterverzeichnissen kopieren. Der Punkt am Schluss besagt, dass ins Home-Verzeichnis auf dem Server kopiert werden soll.
Sie sollten jetzt Ihre Webseite auf dem Server unter https://ofi.tech-lab.ch/2023/ etc. anschauen können. Vergessen Sie nicht, die Webadresse am Schluss noch mit hello/
zu ergänzen.
~/.ssh/config und remote shell mit ssh
So viele Optionen, nur um eine Datei oder ein Verzeichnis zu kopieren, ist mühsam. Darum werden wir diese Optionen in die Datei ~/.ssh/config
schreiben (die ~
steht für das Home-Verzeichnis, normalerweise etwas im Stil von /c/Users/Hans.Wurst/
.
- Auf der Kommandzeile (git-bash) geben Sie das folgende Kommando ein, um die Config-Datei zu schreiben:
code ~/.ssh/config
- Fügen Sie folgende Zeilen in die Datei ein und speichern Sie diese:
Host ofi HostName ofi.tech-lab.ch User hans.wurst Port 23
- Probieren Sie jetzt unten stehende Kommandozeile aus (anstatt voll ausgeschrieben
ssh -p 23 hans.wurst@ofi.tech-lab.ch
)
ssh ofi
- Damit sind Sie direkt auf dem Webserver eingeloggt, was am geänderten Prompt zu erkenne ist. Mit
ls -la
sehen Sie sämtliche Dateien und Verzeichnisse. - Sie können nun Ihr Webserver-Passwort ändern mit
passwd
(bei der Passworteingabe wird gar nichts angezeigt). - Wenn Sie Ihre Webseite gleich schon öffentlich schalten möchten, verschieben Sie die Datei
.htaccess
ins Verzeichnisprivate
mitmv .htaccess private/.
(oder löschen Sie die Datei.htaccess
mitrm .htaccess
) - Die Datei
index.html
dürfen Sie ebenfalls ins Verzeichnisprivate
verschieben oder löschen, damit das Verzeichnis angezeigt wird.
mv .htaccess private/. mv index.html private/.
- Mit
exit
verlassen Sie den Webserver und befinden sich wieder auf Ihrem Computer. Versuchen Sie dann (mit jetzt geändertem Passwort).
scp -r hello ofi:.
- Das ist nun hoffentlich doch etwas einfacher!
Verbindung mit Schlüsseln statt Passwörtern (optional)
In git-bash führen Sie folgende Kommandos aus:
- Schlüssel generieren (Speicherort akzeptieren, ein neues Schlüsselpasswort setzen):
ssh-keygen.exe -t ed25519 -C "hans.wurst@windoof"
- Dann den Schlüssel kopieren:
ssh-copy-id ofi
- Von jetzt an kann mit dem Schlüssel eingloggt werden. Allerdings muss jetzt jedes Mal das Schlüsselpasswort eingegeben werden. Aber dafür gibt es Abhilfe. Ergänzen Sie Ihre Datei
~/.bashrc
wie auf folgender Webseite beschrieben: https://docs.github.com/en/authentication/connecting-to-github-with-ssh/working-with-ssh-key-passphrases#auto-launching-ssh-agent-on-git-for-windows - Das Passwort muss dann nur ein einziges Mal beim ersten Start der git-bash eingegeben werden. Danach funktionieren die Kommandos scp und ssh ohne Passwort und sind trotzdem sicher