jenkins配置publish over ssh遇到的問題

1、背景java

目標ubuntu

本篇文章主要是說明本身在配置jenkins的publish over ssh插件所遇到的問題.本次主要是windows下的jenkins經過ssh的方式訪問我本地虛擬機的ubuntu系統vim

準備windows

1.在jenkins上安裝publish over ssh插件,不會安裝的童鞋請百度谷歌服務器

2.虛擬機的ubuntu系統安裝openssh-server並啓動該服務session

2、ubuntu操做中的報錯以及處理ssh

在下載openssh-server時首先更新apt-get,使用如下命令fetch

sudo apt-get update
報錯以下:.net

E: Failed to fetch http://mirrors.163.com/ubuntu/dists/lucid-security/universe/source/Sources 404 Not Found
E: Failed to fetch http://mirrors.163.com/ubuntu/dists/lucid-updates/universe/source/Sources 404 Not Found
E: Failed to fetch http://mirrors.163.com/ubuntu/dists/lucid-proposed/universe/source/Sources 404 Not Found
E: Failed to fetch http://mirrors.163.com/ubuntu/dists/lucid-backports/universe/source/Sources 404 Not Found
這個是由於我以前切換163源的時候格式不對,因此須要從新修改下/etc/apt/source.list文件,出現相似的錯誤均可以按照以下方法進行修改插件

cd /etc/apt
sudo cp source.list source.list.bak //備份該文件
sudo vim source.list //將該文件的內容所有刪除,並換上下面的內容
deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiversedeb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiversedeb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiversedeb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiversedeb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiversedeb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiversedeb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiversedeb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiversedeb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiversedeb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
換好了之後,退出並再執行命令sudo apt-get update,沒報錯後再執行如下命令

sudo apt-get install openssh-server //下載ssh服務
遇到了以下錯誤

The following packages have unmet dependencies:
openssh-server : Depends: openssh-client (= 1:6.6p1-2ubuntu1)
Depends: openssh-sftp-server but it is not going to be installed
Recommends: ssh-import-id but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
這是由於,openssh-server是依賴於openssh-clien的,而ubuntu自帶的openssh-clien與所要安裝的openssh-server所依賴的版本不一樣,這裏所依賴的版本是1:6.6p1-2ubuntu1,因此須要先下載1:6.6p1-2ubuntu1版本的openssh-client,執行如下命令下載

sudo apt-get install openssh-client=1:6.6p1-2ubuntu1 -y //下載對應版本的openssh-client
下載沒報錯後,執行如下命令

sudo apt-get install openssh-server -y
最後就是恭喜你sshd服務已經下載好了

3、在jenkins上配置publish over ssh插件

1.在系統管理-->系統設置中找到publish over ssh

 

如圖所示是jenkins上的ssh插件的公有配置部分,下面詳細講解下(其實比較簡單,可是本身遇坑了也就記錄一下)

Passphrase:若是本身在本地生成的ssh key沒密碼的話,這裏不須要填寫

Path to key:這裏填寫私鑰的地址

key:這裏填寫私鑰的內容(cat ~/.ssh/id_rsa查看)

Name:這裏本身填寫一個好記的名字

Hostname:主機ip或者域名

Username:登陸機器的用戶名

Remote Directory:遠程的操做目錄(這個須要本身的對應的服務器上建立好目錄,而且登陸名對應的用戶須要有相應的權限)

******注意:這種利用私鑰訪問的辦法須要事先將你的公鑰放置到對應服務器的~/.ssh/authorized_keys中(通常 利用ssh-copy-id 命令免密登陸)*****

以上登陸方式不推薦,點擊「Use password authentication, or use a different key」,利用私有配置登陸纔是咱們推薦的

Passphrase / Password:這裏填寫username登陸名對應的密碼(其餘的配置這裏就不敘述了,看字段名應該就能明白)

通常填寫密碼就能登陸了,點擊Test configuration,出現Success表示鏈接成功;但有時候會報以下錯:

Failed to connect or change directory
[java.net.ConnectException: Connection refused: connect]]
這是因爲服務器上的sshd服務沒有開啓致使的,登陸到服務器上執行命令

sudo service sshd start //開啓sshd服務
或者是以下錯誤

jenkins.plugins.publish_over.BapPublisherException: Failed to connect session for config [131]. Message [Auth fail]
這是因爲帳號密碼不一致致使的,自行覈查下帳號密碼.或者採用在私有配置中利用私鑰來進行登陸(這種方式參考上面的配置,在path to key 和key中填好相應的內容)

4、總結

以上就是這篇文章所要講的,主要是記錄下本身的遇到的錯誤以及解決方案,因爲虛擬機的sshd服務沒開啓致使本身排查了好長時間,很慚愧啊,由於平時在公司使用的機器默認已經裝好了這些服務,因此一時間忽略了這個問題,仍是本身太粗心啊!

原文發表在知乎,知乎連接:https://zhuanlan.zhihu.com/p/39549204

相關文章
相關標籤/搜索