centos+Jenkins+maven+gradle+分布式scp+无密码登录

这里先零散记录一下,后续逐渐再完整整理。

 

远程scp无密码登录

假设有两台服务器,A是Jenkins构建服务器,B是应用服务器,A构建好应用之后,将包传到B进行发布。

在A上面执行 ssh-keygen -t rsa -P '', -P后面两个单引号表示密码为空

ssh-keygen -t rsa -P ''
ssh-copy-id -i ~/.ssh/id_rsa.pub <IP>

我的操作记录与部分截图:

[root@localhost ~]# ssh-keygen -t rsa -P ''

cp id_rsa.pub id_rsa.pub_201scm.pub

只直接执行时候会报错,如下:

复制代码
[root@localhost .ssh]# ssh-copy-id -i ~/.ssh/id_rsa_201scm.pub 192.168.1.203

/usr/bin/ssh-copy-id: ERROR: failed to open ID file '/root/.ssh/id_rsa_201scm': 没有那个文件或目录
    (to install the contents of '/root/.ssh/id_rsa_201scm.pub' anyway, look at the -f option)
[root@localhost .ssh]# ssh-copy-id -i /root/.ssh/id_rsa_201scm.pub  192.168.1.203

/usr/bin/ssh-copy-id: ERROR: failed to open ID file '/root/.ssh/id_rsa_201scm': 没有那个文件或目录
    (to install the contents of '/root/.ssh/id_rsa_201scm.pub' anyway, look at the -f option)
[root@localhost .ssh]# ssh-copy-id -i /root/.ssh/id_rsa_201scm.pub  192.168.1.203 -f

/usr/bin/ssh-copy-id: ERROR: failed to open ID file '/root/.ssh/id_rsa_201scm': 没有那个文件或目录
    (to install the contents of '/root/.ssh/id_rsa_201scm.pub' anyway, look at the -f option)
复制代码

经过提示和man一下,可以知道这里需要增加参数:

ssh-copy-id -f -i /root/.ssh/id_rsa_201scm.pub  192.168.1.203

执行之后,验证成功

 可以参考:https://www.cnblogs.com/jager/p/5986563.html


另外一种方式

安装expect yum install expect 来安装expect
登录server去取code的脚本如下:

复制代码
#!/usr/bin/expect -f
#!/bin/bash

#for downloading NMS release  from git server!
set timeout 30
set password "123456"
cd ~
spawn git clone test@162.178.15.81:/home/git/NMS/.git -b release NMS
expect "test@162.178.15.81's password:"
send "123456"
send "\r"
interact
复制代码
  1. 针对第二步的文件备份,使用cp 命令就可以啦
  2. 使用新Release的code取代前一版本的code,使用mv或者cp命令
  3. 针对第4步,使用sed,awk之类的命令即可
  4. 重启服务器,restart命令等

可以将每步写成单独的脚本,然后使用source 命令去调用各个脚本的执行。 


 

posted @   念槐聚  阅读(624)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示