OpenSSH respektiert $HOME nicht bei der Suche nach SSH-Konfigurationsdateien

OpenSSH respektiert $HOME nicht bei der Suche nach SSH-Konfigurationsdateien

Ich schreibe einige Integrationstests, die SSH-Verbindungen zwischen Servern testen.

Vorerst werden die Tests von den Laptops der Leute aus durchgeführt. Um nicht auf den Laptops der Benutzer (des Benutzers, der die Tests durchführt) herumzupfuschen, ~/.ssh/configerstelle ich ein temporäres Verzeichnis mit einer maßgeschneiderten ./tmp/.ssh/configDatei nur für die Tests. Dann exportiere ich HOME=/path/to/tmp. Leider habe ich festgestellt, dass OpenSSH nicht verwendet wird, $HOMEum nach einer SSH-Konfiguration oder Identitätsdateien zu suchen.

Das ist in Ordnung, wenn ich per SSH direkt mit einem Host verbunden bin, da ich meine Konfiguration einfach explizit mit dem -FFlag festlegen kann. Wenn ich jedoch per SSH über eine Bastion verbunden bin und einen Proxybefehl habe, sshwird diese Konfigurationsdatei nicht an meinen Proxybefehl weitergegeben. Wenn meine maßgeschneiderte SSH-Konfiguration also beispielsweise einen anderen Standardbenutzernamen verwendet, wird diese Konfiguration nicht für den Proxybefehl verwendet.

Ich „könnte“ auch den Proxy-Befehl ändern (um eine SSH-Konfigurationsdatei als Argument zu verwenden), ich würde jedoch gerne wissen, ob es möglich ist, OpenSSH dazu zu bringen, die Konfigurations-/Identitätsdateien nur durch die Verwendung von Umgebungsvariablen an einem anderen Ort zu suchen (ohne die Konfigurationsdatei an jeden nachfolgenden Downstream-Befehl weitergeben zu müssen). Ich kann meinen SSH-Agenten ändern, SSH_AUTH_SOCKalso hoffte ich, auch das Verzeichnis der Konfigurationsdatei ändern zu können.

Antwort1

Ruft das Home-Verzeichnis laut Quelltext sshaus der Passwortdatei und anschließend, falls dies nicht gelingt, aus der Umgebungsvariable HOME ab.

Sie können beispielsweise Includejedem Benutzer ein hinzufügen .~/.ssh/config~/tmp/user/.ssh/config

Wenn die einzubindende Datei nicht existiert, sshwird keine Beschwerde eingelegt. Wenn sie jedoch existiert und lesbar ist, wird sie eingeschlossen. Damit sollten Sie die Tests durchführen können, ohne zu viel mit den Dateien herumzuspielen.

Beachten Sie, dass dies ein Sicherheitsrisiko darstellt. Jeder, der diese Pfade kennt, kann lokale Konfigurationen für andere Benutzer einfügen, wenn Sie sie nicht gut sichern.

verwandte Informationen