Zum Inhalt springen

VS Code Troubleshooting

Die folgenden Prüfungen helfen dabei zu verifizieren, dass der dev-Container die erwartete Konfiguration nutzt und keine unerwarteten Credentials, Mounts oder Dienste aktiv sind.


Um zu prüfen, wie Git-Credentials in dem dev-Container bereitgestellt werden, können folgende Checks im Container durchgeführt werden:

1. Git-Remote prüfen

Terminal-Fenster
git remote -v
  • git@... → SSH → meist SSH-Agent Forwarding
  • https://... → HTTPS → meist Credential Helper

2. SSH-Agent prüfen

Terminal-Fenster
echo $SSH_AUTH_SOCK
ssh-add -L

Wenn ein Socket gesetzt ist und Schlüssel angezeigt werden, wird SSH-Agent Forwarding verwendet.

3. Credential Helper prüfen

Terminal-Fenster
git config --show-origin --get-all credential.helper

Wenn der credential.helper auf ein vscode-remote-containers-*.js Script zeigt, verwendet der dev-Container das von VS Code bereitgestellte Credential Sharing. Die Git-Credentials werden dabei vom Host-System durchgereicht und nicht im Container gespeichert.


Innerhalb des dev-Containers kann überprüft werden, ob das SSH-Agent-Forwarding aktiv ist. Zunächst kann geprüft werden, ob die entsprechende Umgebungsvariable gesetzt ist:

Terminal-Fenster
env | grep SSH

Wenn folgende Variable erscheint

Terminal-Fenster
SSH_AUTH_SOCK=/tmp/vscode-ssh-auth-...

bedeutet dies, dass VS Code das SSH-Agent-Forwarding aktiv eingerichtet hat.


VS Code leitet den lokalen SSH-Agent automatisch weiter, sofern auf dem Host-System ein SSH-Agent läuft.

Im Container:

Terminal-Fenster
env | grep SSH_AUTH_SOCK
ls -l "$SSH_AUTH_SOCK"
ssh-add -l

Interpretation:

  • kein SSH_AUTH_SOCK vorhanden → kein Agent sichtbar
  • SSH_AUTH_SOCK vorhanden + ssh-add -l zeigt Keys → Agent funktioniert
  • SSH_AUTH_SOCK vorhanden, aber ssh-add -l schlägt fehl → Socket vorhanden, aber nicht nutzbar

Prüfen, welche SSH-Konfiguration tatsächlich greift

Abschnitt betitelt „Prüfen, welche SSH-Konfiguration tatsächlich greift“

Die Prüfung wird hier beschrieben.


Die Prüfung wird hier beschrieben.


Prüfen, ob keine privaten SSH-Keys im Container liegen

Abschnitt betitelt „Prüfen, ob keine privaten SSH-Keys im Container liegen“

VS Code beschreibt automatisches SSH-Agent-Forwarding, jedoch kein Kopieren privater Schlüssel.

Der Container sollte daher keine privaten SSH-Keys enthalten, sofern sie nicht explizit gemountet wurden.

Im Container:

Terminal-Fenster
find /home/node/.ssh -maxdepth 1 -type f 2>/dev/null

Erwartet:

  • config
  • known_hosts

Nicht erwartet:

  • private Schlüssel

Wenn runServices nicht gesetzt ist, startet Docker Compose laut Development Container Konzept standardmäßig alle Services.

Mit

runServices: ["dev"]

lassen sich unerwartete Container vermeiden.

Auf dem Host-System:

Terminal-Fenster
docker compose ps

Erwartet:

  • nur dev und bewusst definierte Abhängigkeiten
  • keine zusätzlichen Services wie app, deps oder andere Container