SSH在Jenkins中的使用

咱們今天在遷移Jenkins的時候又出現沒法調用私鑰來獲取oschina的git代碼和使用scp拷貝沒法驗證的問題。我發現主要的問題其實是關於ssh的問題,由於git和scp都是經過ssh來實現與遠端服務器的通信過程。
我總結有下面三個坑:
 
1. 當存在多個私鑰(一般咱們建立出來默認名稱爲: id_rsa 或者id_dsa )的時候如何處理?
好比我有兩個私鑰
  • id_rsa_oschina
  • id_dsa70
分別對應鏈接的服務器是git.oschina.net 和 192.168.88.70 linux服務器。
這種狀況下,須要在ssh默認配置目錄,c:\users\[username]\.ssh下建立一個config的文件,指定對應的服務器使用的identityfile

Host git.oschina.netlinux

  IdentityFile ~/.ssh/id_rsa_oschinagit

Host 192.168.88.70web

  IdentityFile ~/.ssh/id_dsa70服務器

 
 
2. DSA協議不被承認
使用 
ssh -vT wzp@192.168.88.70
進行測試,發現其中
debug1: Skipping ssh-dss key /c/Users/UM_CI_BUILDER/.ssh/id_dsa70 for not in PubkeyAcceptedKeyTypes
 
所以,須要config文件中指定
 Host 192.168.88.70
    IdentityFile ~/.ssh/id_dsa70
    PubkeyAcceptedKeyTypes ssh-dss
 
3. 在jenkins中 使用 scp  cas.war wzp@192.168.88.70:/home/wzp/ 提示unstable的編譯結果。

E:\Jenkins_work\QA_UM_SSO\workspace\cas-server-webapp\target>scp cas.war wzp@192.168.88.70:/home/wzp/app

E:\Jenkins_work\QA_UM_SSO\workspace\cas-server-webapp\target>exit 0ssh

SSH: Connecting from host [WIN12FILESRV1]webapp

SSH: Connecting with configuration [LINUX CAS SVR-80-Test] ... ERROR: Exception when publishing, exception message [Failed to read file - filename [C:\Users\UM_CI_BUILDER\.ssh\id_dsa] (relative to JENKINS_HOME if not absolute).ide

Message: [C:\Users\UM_CI_BUILDER\.ssh\id_dsa (The system cannot find the file specified)]] Build step 'Send files or execute commands over SSH' changed build result to UNSTABLE測試

Finished: UNSTABLEui

 

這個須要在jenkins全局配置,增長LINUX CAS SVR-80-Test 在publish over ssh中的定義。

 

 

好吧,終於把Jenkins發佈到linux的坑給填完了。

相關文章
相關標籤/搜索