Zum Inhalt springen

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

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-2

Diese 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

Die zuvor beschriebene Verzeichnis- und Dateistruktur für Konfigurationen wird einmalig vorbereitet:

mkdir -p ~/.gitconfig.d
mkdir -p ~/.ssh
mkdir -p ~/.ssh/config.d
mkdir -p ~/.ssh/config.d/host-system
mkdir -p ~/.ssh/config.d/dev-container
mkdir -p ~/.ssh/known_hosts.d
mkdir -p ~/.ssh/known_hosts.d/dev-container
mkdir -p ~/Work
touch ~/.gitconfig
touch ~/.ssh/config
touch ~/.ssh/known_hosts

Berechtigungen setzen:

chmod 600 ~/.gitconfig
chmod 700 ~/.gitconfig.d
chmod 600 ~/.gitconfig.d/*
chmod 700 ~/.ssh
chmod 600 ~/.ssh/config
chmod 700 ~/.ssh/config.d
chmod 700 ~/.ssh/config.d/host-system
chmod 600 ~/.ssh/config.d/host-system/*
chmod 700 ~/.ssh/config.d/dev-container
chmod 600 ~/.ssh/config.d/dev-container/*
chmod 600 ~/.ssh/known_hosts
chmod 700 ~/.ssh/known_hosts.d
chmod 700 ~/.ssh/known_hosts.d/dev-container
chmod 600 ~/.ssh/known_hosts.d/dev-container/*

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.

  1. Die beschriebene Struktur ist Teil der Umgebung dieser Guideline und frei gewählt. Sie kann grundsätzlich auch anders umgesetzt werden. 2 3

  2. Die Benamung mit .d im Verzeichnisnamen ist frei gewählt. Es hat keine Sonderbedeutung für macOS oder OpenSSH.