Jenkins配置免密ssh远程连接

在Jenkins主机生成ssh公钥和私钥对:

`ssh-keygen -t rsa`
  1. 使用ssh-copy-id将公钥从Jenkins主机复制远程主机: ssh-copy-id -i /root/.ssh/id_rsa.pub "root@192.168.10.101"

  2. Jenkins安装Publish over SSH插件

    • 打开Jenkins的系统管理>插件管理,选择可选插件
    • 在输入框中输入Publish over SSH
    • 进行搜索如果搜索不到可以在已安装里确认是否已经安装过
    • 在搜索结果中选中Publish over SSH
    • 点击页面的直接安装按钮,系统会自动安装
    • 此插件安装后不需要重启Jenkins
    • 如果插件安装成功在系统管理>系统设置会出现相关配置项。
  3. 插件安装成功后使用前需要在系统管理>系统设置中进行配置:

    因为已经同步了公钥,不需要密码即可连接,只需要配置几个选项即可: - Name

    • Hostname
    • Username
    • Remote Derictory
  4. 在Jenkins中配置构建 点击构建选项,在增加构建步骤里选择Send files or execute commands over SSH,即可以在Job中使用Publish over SSH插件

    参数说明

    • Name 系统管理>系统设置设置的SSH Sverver的名字列表。
    • Source files 允许为空,复制到运程机上的文件,相对workspace的路径,也支持表达式,如**/*.war
    • Remove prefix 允许为空,文件复制时要过滤的目录.
    • Remote directory 允许为空,文件得到到远程机上的目录,此目录是相对于SSH Server中的Remote directory的,如果不存在将会自动创建。
    • Exec command 在这里可以填写在运程机器上执行的shell命令

注意

  • ssh-copy-idkey写到远程机器的 .../.ssh/authorized_key文件中。
  • 当然你复制文件到远程服务器也可以用SCP命令。