Projekt- und Konfigurationsstruktur
Durch Kunden-, Projektverzeichnis, SSH-Konfiguration und Git-Identität entstehen getrennte Arbeitskontexte pro Kunde und Projekt auf dem Host-System:
- klare Verzeichnisstruktur
- Git-Identität je Kunde / Projekt
- SSH-Alias-Konfiguration je Kunde / Projekt
Verzeichnisstruktur für Projekte
Abschnitt betitelt „Verzeichnisstruktur für Projekte“Projekte werden in dieser Guideline auf dem Host-System in einem gemeinsamen Verzeichnis angelegt.
Dafür ist beispielhaft ~/Work gewählt1.
~/Work/ kunde-1/ projekt-1/ projekt-2/ kunde-2/ projekt-1/Verzeichnis- und Dateistruktur für Konfigurationen
Abschnitt betitelt „Verzeichnis- und Dateistruktur für Konfigurationen“GIT- und SSH Konfigurationen liegen dabei in folgender Struktur1 vor.
~/.gitconfig~/.gitconfig.d/ kunde-1 kunde-2~/.ssh/ github_ed25519 config config.d/ host-system/ kunde-1.conf kunde-2.conf dev-container/ kunde-1.conf kunde-2.conf known_hosts known_hosts.d/ dev-container/ kunde-1 kunde-2Diese Struktur21 dient folgendem Zweck:
- Organisatorische Trennung zwischen Kunden und Projekten
- Separate SSH- und GIT-Konfiguration für den Einsatz sowohl auf dem Host-System sowie im Dev Container
- Automatische Zuordnung der richtigen Git-Konfiguration über den Verzeichnispfad
Vorbereitung auf dem Host System
Abschnitt betitelt „Vorbereitung auf dem Host System“Die zuvor beschriebene Verzeichnis- und Dateistruktur für Konfigurationen wird einmalig vorbereitet:
mkdir -p ~/.gitconfig.dmkdir -p ~/.sshmkdir -p ~/.ssh/config.dmkdir -p ~/.ssh/config.d/host-systemmkdir -p ~/.ssh/config.d/dev-containermkdir -p ~/.ssh/known_hosts.dmkdir -p ~/.ssh/known_hosts.d/dev-containermkdir -p ~/Work
touch ~/.gitconfigtouch ~/.ssh/configtouch ~/.ssh/known_hostsBerechtigungen setzen:
chmod 600 ~/.gitconfigchmod 700 ~/.gitconfig.dchmod 600 ~/.gitconfig.d/*chmod 700 ~/.sshchmod 600 ~/.ssh/configchmod 700 ~/.ssh/config.dchmod 700 ~/.ssh/config.d/host-systemchmod 600 ~/.ssh/config.d/host-system/*chmod 700 ~/.ssh/config.d/dev-containerchmod 600 ~/.ssh/config.d/dev-container/*chmod 600 ~/.ssh/known_hostschmod 700 ~/.ssh/known_hosts.dchmod 700 ~/.ssh/known_hosts.d/dev-containerchmod 600 ~/.ssh/known_hosts.d/dev-container/*Warum die Berechtigungen notwendig sind
Abschnitt betitelt „Warum die Berechtigungen notwendig sind“Der OpenSSH-Client überprüft die Berechtigungen bestimmter Dateien und Verzeichnisse. Sind diese zu offen, verweigert SSH teilweise die Nutzung der Konfiguration oder der Schlüsseldateien.