我想配置Hudson作業,將Hudson作業(包含多個文件)的結果複製到Hudson服務器,以便從多個從屬進行結果合併。我的意圖是使用scp。不幸的是,在windows環境中設置SSH公鑰/私鑰有困難(slave和Hudson服務器都是windows環境)。我無法遷移到Linux,因爲我不是這些機器的所有者。公共密鑰設置問題在Windows環境中的scp
我使用以下過程來設置SSH公鑰/私鑰。
- CD C:\ Program Files文件\ OpenSSH的\ BIN
- mkgroup -l >> .. \等\組 通過執行以下哈德森機
配置SSH服務器
- mkpasswd -l >> .. \等\ passwd中
- mkpasswd -d -u測試>> .. \等\ passwd文件(注:測試是用於SSH用戶ID)
- 下載cygintl,2.DLL & cygwin1.dll從http://samanthahalfon.net/resources/cygwin_includes.zip。將這些dll文件複製到C:\ Program Files \ OpenSSH \ bin。 您將需要替換cygwin1.dll。
- CD C:\ Program Files文件\ OpenSSH的\等
- .. \ BIN \ CHOWN測試*
- .. \ BIN \搭配chmod 600 *
- 編輯C:\ Program Files文件\ OpenSSH的\等\的sshd_config具有以下配置:
- 端口22
- 協議2
- StrictModes沒有
- Pubkey驗證是
- AuthorizedKeysFile /c/home/test/.ssh/authorized_keys
- 的PasswordAuthentication沒有
- UserPrivilegeSeparation沒有
- 通過執行啓動它的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:我也看過哈德森插件的任何潛在的解決方案,但找不到任何合適的或不知道插件的用法。
這將是巨大的,如果有人能發現我的錯誤在公共密鑰設置或提出替代解決方案,我將多個文件複製到服務器哈德森。由於