
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/config
erstelle ich ein temporäres Verzeichnis mit einer maßgeschneiderten ./tmp/.ssh/config
Datei nur für die Tests. Dann exportiere ich HOME=/path/to/tmp
. Leider habe ich festgestellt, dass OpenSSH nicht verwendet wird, $HOME
um 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 -F
Flag festlegen kann. Wenn ich jedoch per SSH über eine Bastion verbunden bin und einen Proxybefehl habe, ssh
wird 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_SOCK
also hoffte ich, auch das Verzeichnis der Konfigurationsdatei ändern zu können.
Antwort1
Ruft das Home-Verzeichnis laut Quelltext ssh
aus der Passwortdatei und anschließend, falls dies nicht gelingt, aus der Umgebungsvariable HOME ab.
Sie können beispielsweise Include
jedem Benutzer ein hinzufügen .~/.ssh/config
~/tmp/user/.ssh/config
Wenn die einzubindende Datei nicht existiert, ssh
wird 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.