2012-01-27 81 views
0

我想配置Hudson作業,將Hudson作業(包含多個文件)的結果複製到Hudson服務器,以便從多個從屬進行結果合併。我的意圖是使用scp。不幸的是,在windows環境中設置SSH公鑰/私鑰有困難(slave和Hudson服務器都是windows環境)。我無法遷移到Linux,因爲我不是這些機器的所有者。公共密鑰設置問題在Windows環境中的scp

我使用以下過程來設置SSH公鑰/私鑰。

  • CD C:\ Program Files文件\ OpenSSH的\ BIN
  • mkgroup -l >> .. \等\組
  • 通過執行以下哈德森機

    1. 配置SSH服務器

    2. mkpasswd -l >> .. \等\ passwd中
    3. mkpasswd -d -u測試>> .. \等\ passwd文件(注:測試是用於SSH用戶ID)
    4. 下載cygintl,2.DLL & cygwin1.dll從http://samanthahalfon.net/resources/cygwin_includes.zip。將這些dll文件複製到C:\ Program Files \ OpenSSH \ bin。 您將需要替換cygwin1.dll。
    5. CD C:\ Program Files文件\ OpenSSH的\等
    6. .. \ BIN \ CHOWN測試*
    7. .. \ BIN \搭配chmod 600 *
    8. 編輯C:\ Program Files文件\ OpenSSH的\等\的sshd_config具有以下配置:
      • 端口22
      • 協議2
      • StrictModes沒有
      • Pubkey驗證是
      • AuthorizedKeysFile /c/home/test/.ssh/authorized_keys
      • 的PasswordAuthentication沒有
      • UserPrivilegeSeparation沒有
    9. 通過執行啓動它的Windows服務:net start opensshd
  • 配置在Hudson機器中使用ssh公鑰,以便測試自動化腳本不會被提示輸入密碼:

    • 在從機中,使用「ssh-keygen -t dsa」命令創建密鑰對。 默認情況下,密鑰對(文件:id_dsa & id_dsa.pub)將生成到C:\ Documents and Settings \ test.ssh \
    • 使用「scp id_dsa.pub [email protected] :. ssh/id_rsa_upload.pub「命令將公鑰上傳到Hudson服務器。 ie scp id_dsa.pub [email protected]:.ssh/id_rsa_upload.pub
    • 在Hudson服務器中,進入目錄C:\ Program Files \ OpenSSH.ssh,然後執行「type id_rsa_upload.pub> > authorized_keys「
    • 通過執行」net stop opensshd「和」net start opensshd「退出並重新啓動Hudson服務器上的opensshd,現在您可以不使用密碼登錄ssh服務器。
    • 在哈德森服務器,執行以下:
      • CD C:\ Program Files文件\的OpenSSH \
      • CHOWN -R測試。
      • 搭配chmod -R 700的.ssh
      • CD的.ssh
      • 搭配chmod 600米的authorized_keys
    • 在子機,編輯C:\ Program Files文件\ OpenSSH的\等\ ssh_config中。指定「IdentityFile/c/home/test/id_dsa」。
  • 從您的從屬計算機測試哪個SSH私鑰已被執行。子機,連接通過執行:

    SSH [email protected](IP是哈德森服務器的IP)

    不幸的是,它仍然會提示輸入密碼短語。

  • 我看着下面的可能性,解決方法,但結果並不樂觀:

    一個。在映射到子機側的驅動哈德森服務器共享驅動器 - 哈德森不允許「拷貝result.html Y:」

    灣SFTP - 這還需要公鑰

    ℃。通過使用「複製result.html \ XX.XX.XX.XX \測試\」找到了一個建議的解決方案,以克服共享驅動器的問題,但我遇到了拒絕訪問的錯誤,因爲我有 不知道如何使用指定這個用戶ID和密碼方法。參考:Hudson continuous integration server: how to see Windows mapped directories that are visible to Ant?

    d:我也看過哈德森插件的任何潛在的解決方案,但找不到任何合適的或不知道插件的用法。

    這將是巨大的,如果有人能發現我的錯誤在公共密鑰設置或提出替代解決方案,我將多個文件複製到服務器哈德森。由於

    回答

    0

    你需要確定什麼是錯的第一 - 服務器或客戶端。

    1. 要驗證任何Linux/Mac客戶端(這是更透明)上的服務器設置相同的密鑰,並嘗試連接到服務器。

    2. 要驗證你的奴隸機器上的SSH加載下一頁您的DSA身份密鑰嘗試:

      SSH -IC:/首頁/測試/ -v id_dsa的[email protected]

    其中-i會告訴SSH哪裏獲得鑰匙和-v啓用詳細模式,它可以幫助你找出問題所在。