2016-08-12 45 views
1

我們在Xen上運行的Windows虛擬機上使用Eclipse IDE。另一方面,我們正在使用Gitolite來管理Git存儲庫。它們使用Gitolite的鏡像功能鏡像到多臺服務器上。Windows上的Eclipse IDE的系統範圍SSH配置文件

我打算做的是在主服務器關閉的情況下將用戶透明地切換到備份服務器。

爲此,我的想法是在SSH設置中創建一個系統範圍的主機別名。在Linux上,例如,我會使用/etc/ssh/ssh_config文件中包含的條目:

Host scms.box 
    Hostname master-server 

如果說主服務器宕機,那麼我可以代替主機名:

Host scms.box 
    Hostname backup-server 

Eclipse的IDE是閱讀從~/.ssh/config的SSH設置,但這是用戶特定的(如在Linux上)。
我想知道在Windows上是否會有相當於/etc/ssh/ssh_config

回答

1

我想知道在Windows上是否會有相當於/etc/ssh/ssh_config

正如在 「Git SSH client for Windows and path for .ssh/config file

<installPath>\Git\etc\ssh\ssh_config 

提到如果set GIT_SHH<installPath>\Git\usr\bin\ssh.exe(和啓動Eclipse),然後Eclipse應當同時使用SSH全局配置。

+0

這需要安裝額外的軟件。 eGit/eclipse沒有內部功能來處理它嗎? –

+0

@fboule未安裝。只需解壓縮:https://github.com/git-for-windows/git/releases/download/v2.9.3.windows.1/PortableGit-2.9.3-64-bit.7z.exe – VonC

+0

好的,但重點是這是另一個維護軟件(用於更新錯誤修復,安全修復程序等)。當你只有一次安裝時,這是可以接受的,但當你正在談論約100個用戶的工作環境時,這是可以接受的。 –

1

簡短回答:它沒有在JGit中實現。它只支持「用戶」配置文件。

長答案:我一直在尋找EGit/JGit源代碼。 JGit正在讀取SSH配置並將該對象作爲參數傳遞以創建SSH會話。但是,JGit僅支持用戶配置文件。

片段的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; 
}