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