2016-08-12 3 views
1

Wir verwenden die Eclipse-IDE auf virtuellen Windows-Maschinen, die auf Xen laufen. Auf der anderen Seite verwenden wir Gitolite, um die Git-Repositories zu verwalten. Sie werden über mehrere Server gespiegelt, wobei die Spiegelungsfunktion von Gitolite verwendet wird.Systemweite SSH-Konfigurationsdatei für Eclipse IDE unter Windows

Ich beabsichtige, die Benutzer transparent auf den Backup-Server zu schalten, falls der Master-Server ausgefallen ist.

Um dies zu tun, ist meine Idee, einen systemweiten Host-Alias ​​in den SSH-Einstellungen zu erstellen. Unter Linux zum Beispiel würde ich die /etc/ssh/ssh_config Datei mit einem Eintrag wie verwenden:

Host scms.box 
    Hostname master-server 

Wenn jemals meistern-Server ausfällt, kann ich dann die Hostnamen ersetzen:

Host scms.box 
    Hostname backup-server 

Die Eclipse IDE liest die SSH-Einstellungen von ~/.ssh/config, aber das ist benutzerspezifisch (wie unter Linux).
Ich habe mich gefragt, ob es unter Windows eine Entsprechung zu /etc/ssh/ssh_config geben würde?

Antwort

1

Ich frage mich, ob es unter Windows eine Entsprechung zu /etc/ssh/ssh_config geben würde?

Wie in "Git SSH client for Windows and path for .ssh/config file"

<installPath>\Git\etc\ssh\ssh_config 

erwähnt Wenn Sie set GIT_SHH zu <installPath>\Git\usr\bin\ssh.exe (und der Einführung Eclipse), dann sollte Eclipse-auch die globale ssh config.

+0

Dies erfordert eine zusätzliche Software installiert werden. Gibt es kein internes Feature für eGit/Eclipse? –

+0

@fboule Nicht installiert. Lediglich entpackt: https://github.com/git-for-windows/git/releases/download/v2.9.3.windows.1/PortableGit-2.9.3-64-bit.7z.exe – VonC

+0

Ok, aber der Punkt ist Dies ist noch eine weitere zu wartende Software (um Bugfixes, Sicherheitsupdates usw. zu aktualisieren). Dies ist akzeptabel, wenn Sie nur eine Installation haben, aber nicht, wenn Sie über die Arbeitsumgebung von ~ 100 Benutzern sprechen. –

1

Kurze Antwort: Es ist nicht in JGit implementiert. Es unterstützt nur die Konfigurationsdatei "user".

Lange Antwort: Ich habe in den EGit/JGit Quellcode untersucht. JGit liest die SSH-Konfiguration und übergibt das Objekt als Argument, um die SSH-Sitzung zu erstellen. JGit unterstützt jedoch nur die Benutzerkonfigurationsdatei.

Snippet jgit/org.eclipse.jgit/src/org/eclipse/jgit/transport/OpenSshConfig.java:

public static OpenSshConfig get(FS fs) { 
    File home = fs.userHome(); 
    if (home == null) 
     home = new File(".").getAbsoluteFile(); //$NON-NLS-1$ 

    final File config = new File(new File(home, ".ssh"), Constants.CONFIG); //$NON-NLS-1$ 
    final OpenSshConfig osc = new OpenSshConfig(home, config); 
    osc.refresh(); 
    return osc; 
}