jenkins配置publish over ssh遇到的问题

一、背景

目标

本篇文章主要是说明自己在配置jenkins的publish over ssh插件所遇到的问题.本次主要是windows下的jenkins通过ssh的方式访问我本地虚拟机的ubuntu系统

准备

1.在jenkins上安装publish over ssh插件,不会安装的童鞋请百度谷歌

2.虚拟机的ubuntu系统安装openssh-server并启动该服务


二、ubuntu操作中的报错以及处理

在下载openssh-server时首先更新apt-get,使用以下命令

sudo apt-get update

报错如下:

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服务已经下载好了


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

1.在系统管理-->系统设置中找到publish over ssh

jenkins配置publish over ssh遇到的问题_第1张图片

 

如图所示是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中填好相应的内容)

 

你可能感兴趣的:(jenkins,ssh,ubuntu)