转自:https://blog.csdn.net/kingboyworld/article/details/78905553

一、场景介绍

项目为微服务项目,使用jenkins进行统一部署。基本思路是 
1. 在jenkins服务器上使用git插件拉取项目代码 
2. 使用gradle进行打包 
3. 将打好的jar包使用scp远程复制到部署服务器上 
4. 执行远程shell脚本启动jar包项目

二、坑

scp命令copy文件时需要输入密码,然而shell脚本中对密码输入的处理还是很麻烦的。有以下两种方式:

1.使用密码插件,自动输入密码 
或 
2.使服务器之间相互信任,这样scp命令就不需要输入密码了

第一种方式,网上搜了下,感觉很麻烦,就没有去尝试了。第二种方式的配置过程如下:

1.复制jenkins服务器用户目录下的.ssh/id_rsa.pub中的内容

(没有这个文件的话可以网上查查怎么生成)。

cat ~/.ssh/id_rsa.pub

2.将上面复制的内容添加到应用服务器(也就是需要远程部署应用的服务器)的.ssh/authorized_keys文件中。

一般这个文件初始都是空的,直接使用vim命令复制进去就好。

#如果文件是空的可以直接使用以下命令复制进去
echo 复制的内容 >> ~/.ssh/authorized_keys

这个时候环境配置就准备好了。

3.这个时候使用jenkins构建时,仍然失败,提示权限不够,这就是坑。

原因:虽然我们已经配置了相许信任,但是第一次使用scp命令需要先自己手动在shell中端中执行一次才可以。那么我们使用scp随意复制个文件过去,输入密码。

之后再用jenkins复制文件就免输密码了。

jenkins系列_使用scp命令进行远程文件复制遇到的坑的更多相关文章

  1. scp命令获取远程文件

    一.scp是什么? scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的,可能会稍微影响 ...

  2. mac 连接linux服务器,用scp命令实现本地文件与服务器文件之间的互相传输

    mac连接linux服务器 打开终端,切换到root权限下,切换root权限命令:sudo -i 通过ssh命令连接linux服务器:ssh root@ip地址(root是账户名) 然后根据提示输入密 ...

  3. scp 远程文件复制命令

    scp 远程文件复制工具 1.命令功能 scp用户在不同linux主机间复制文件,他采用ssh协议保障复制的安全性.scp复制是全量完整复制,效率不高,使用与第一次复制,增量复制建议rsync命令. ...

  4. Linux SSh scp使用【远程文件/目录的传输】

    一:Linux ssh scp的简介及作用: scp就是secure copy的简写,用于在linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器. 有时我们 ...

  5. 使用openssh-clients的scp命令来传输文件

    了解openssh-client是请参阅:https://blog.csdn.net/u010215256/article/details/53239905 了解scp命令来传输文件请参阅:https ...

  6. ssh tar 命令把远程文件拉回来或推过去

    ssh tar 命令把远程文件拉回来或推过去 2010-09-11 21:55:35 分类: LINUX     登录22后tar 压缩/var/log目录输出到标准输入通过管道传到本地22_log. ...

  7. linux命令之scp远程文件复制

    scp是linux中功能最强大的文件传输命令,可以实现从本地到远程以及远程到本地的轻松文件传输操作.下面简单的讲解一些关于scp命令的操作,给有用的人一些参考: 首先是本地到远程的操作:操作的格式如下 ...

  8. 【终端使用】"scp"命令,远程拷贝文件

    一."scp"命令的使用 "scp"命令,是"secure copy (remote file copy program)"英文单词的缩写, ...

  9. Linux 用 sftp scp命令 互传文件

    sftp它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性. sftp 是SSH服务的子程序 常用命令 pwd 查看当前工作目录 ls 查看远程当前目录下的所以文件或者目录信息 lls 查看 ...

随机推荐

  1. Jmeter(三十七)源码导入IDE(转!)

    转自:http://www.cnblogs.com/taoSir/p/5144274.html[eclipse]    https://blog.csdn.net/collonn/article/de ...

  2. 安装sublime txt3 并且设置为默认的text打开方式

    1.安装 安装可以参考 http://jingyan.baidu.com/article/fa4125acb8569b28ac7092ea.html 1.添加sublime text 3的仓库: su ...

  3. CRM4.0 上传附件大小限制

    问题背景: 上传附件大小默认为 5M 可以通过以下设置修改其大小 : "设置"--〉“管理”--〉“系统设置”--〉“电子邮件”--〉“设置附件文件的大小限制”

  4. (转)C# BackgroundWorker组件的原理分析

    原文地址:http://www.cnblogs.com/chaosimple/archive/2012/11/30/2796069.html 主要属性: 1.CancellationPending 获 ...

  5. SVN安装后bin中没有svn.exe,TortoiseSVN安装后bin目录中没有svn.exe;

    TortoiseSVN的bin目录中没有svn.exe 为什么没有,是因为安装TortoiseSVN的时候没有勾选指定安装项:找到svn的安装包,不用卸载旧的直接安装: 1.选择Modify 2.注意 ...

  6. solr系统query检索词特殊字符的处理

    solr是基于 lucence开发的应用,如果query中带有非法字符串,结果很可能是检索出所有内容或者直接报错,所以你对用户的输入必须要先做处理.输入星号,能够检索出所有内容:输入加号,则会报错. ...

  7. JS静态变量和函数、实例变量和函数以及prototype 说明

    静态变量.函数 当定义一个函数后通过 “.”为其添加的属性和函数,通过对象本身仍然可以访问得到,但是其实例却访问不到,这样的变量和函数分别被称为静态变量和静态函数,用过Java.C#的同学很好理解静态 ...

  8. vuejs实现瀑布流布局(二)

    瀑布流布局已然完成,那么剩下的就是另一个比较大的工程了——无限加载. 之前说了,这个活动项目是基于SUI-Mobile搭建的,所以可以直接使用sui内建组件“无限加载”来实现这个功能. 没有真实的数据 ...

  9. 数据库设计和ER模型-------之数据库系统生存期(第二章)

    数据库设计 概念:开发人员利用开发环境表达用户要求.设计构造最优的数据模型,然后据此建立数据库以及其应用系统,这个过程称为数据库设计 数据库生存期 1968年首次提出“软件工程”的概念 概念:我们把数 ...

  10. Vue.js路由

    有时候,我们在用vue的时候会有这样的需求,比如一个管理系统,点了左边的菜单栏,右边跳转到一个新的页面中,而且刷新的时候还会停留在原来打开的页面. 又或者,一个页面中几个不同的画面来回点击切换,这两种 ...