1.安裝Publish Over SSH插件
系統管理→管理插件→可選插件→Artifact Uploaders→Publish Over SSH
查看是否安裝成
2.Publish over SSH的公共配置(系統配置)
系統管理→系統配置→Publish Over SSH
公共配置說明:
Passphrase:密碼(key的密碼,如果你設置了)
Path to key:key文件(私鑰)的路徑
Key:將私鑰復制到這個框中
Disable exec:禁止運行命令
私有配置說明:
SSH Server Name:標識的名字(隨便你取什么,一般根服務器相關,下面要用到)
Hostname:需要連接ssh的主機名或ip地址(建議ip)
Username:用戶名
Remote Directory:遠程目錄(就是上傳的目錄)
點擊高級選項

私有配置的高級選項:
Use password authentication, or use a different key:可以替換公共配置(選中展開的就是公共配置的東西,這樣做擴展性很好)
Passphrase:密碼(可以替換公共配置的密碼,但是這里必須選擇Use password....復選框)
Port:端口(默認22)
Timeout (ms):超時時間(毫秒)默認即可
Disable exec:禁止運行命令
測試配置(Test Configuration)
3.項目配置
XX項目->配置->增加構建步驟
基本配置說明:
Name:對應Publish Over SSH中的私有配置SSH Server Name
Transfer Set
Source files:需要上傳的文件(相對於工作區的路徑。可以填寫多個,默認用,分隔, **/*
表示這個job的工作目錄下所有的文件和目錄。)
Remove prefix 該操作是針對上面的source files目錄,會移除匹配的目錄。通常留空
Remote directory:遠程服務器目錄(比如我這里的test,那么加上 公共配置(系統配置)->私有配置->Remote Directory 最后就是 /xcdata/test/)
高級
高級配置說明:
Exclude files:排除的文件(在你傳輸目錄的時候很有用,使用通配符,例如:/.log,/.tmp,.Git/)
Pattern separator:分隔符(配置Transfer Set Source files的分隔符。如果你這兒更改了,上面的內容也需要更改)
No default excludes:禁止默認的排除規則(具體的自己看幫助)
Make empty dirs:此選項會更改插件的默認行為。默認行為是匹配該文件是否存在,如果存在則創建目錄存放。選中此選項會直接創建一個目錄存放文件,即使是空目錄。(個人理解)
Flatten files:只上傳文件,不創建目錄(除了遠程目錄)
Remote directory is a date format:遠程目錄建立帶日期的文件夾(需要在Remote directory中配置日期格式)
Exec timeout (ms):運行腳步的超時時間(毫秒)
Exec in pty:模擬一個終端執行腳步
Add Transfer Set:增加一個配置
坑說明:
1.Transfer Set Source files配置
發生的坑(SSH: Transferred 0 file(s)):
原因
Transfer Set Source files 這里用的是相對工作區的路徑,比如你這個jenkins的工作目錄為/xcdata/docker-jenkins/jenkins/jenkins_home/workspace/tj,那這的目錄只能是相對於這個目錄下的(不要填絕對路徑,要寫相對路徑),
比如如果是要全部到遠程,就填 **/*,如果是單目錄(如/xcdata/docker-jenkins/jenkins/jenkins_home/workspace/tj/test/app.jar),就填 /test/*
2.Exception when publishing, exception message錯誤
一般這錯誤有2個原因:
1.磁盤空間滿了,清理磁盤空間即可
df -h (查看磁盤空間)
2.沒有權限
Publish Over SSH配置中的用戶密碼沒有創建文件的權限