CentOS服务器之间免密登录和传输文件

使用过 Jenkins 的同学都知道,Jenkins 会在远程服务器上执行一些命令,如:cd /home/wwwroot/ && git pull,这时候就需要在 Jenkins 服务器上配置免密登录,以及在远程服务器上配置免密登录,这样才能实现 Jenkins 服务器和远程服务器之间的静默文件传输、执行脚本发版等操作。

一、场景需要

  • 服务器A:CentOS_168,假如IP为:1.1.1.1
  • 服务器B:CentOS_192,假如IP为:2.2.2.2

要求实现: CentOS_168 向 CentOS_192 通过ssh免密登陆、scp传输文件

二、操作步骤

2.1、登陆服务器A,执行命令生成密钥对

1). 生成秘钥

shell 复制代码
ssh-keygen

该命令一直按回车(Enter)即可,默认生成位置一般是:~/.ssh/

如果用户是非 root 一般位置是:/home/你的当前用户名/.ssh/

shell 复制代码
# 进入当前用户的根目录
cd ~
# 查看隐藏文件
ll -a
# or
ls -a

2). 进入该路径

shell 复制代码
cd ~/.ssh/

2.2、下载生成的公钥文件:id_rsa.pub

找到 id_rsa.pub 这个文件,现将这个文件下载到本地

shell 复制代码
sz id_rsa.pub

2.3、登陆服务器B

1). 登陆服务器B,进入 /root/.ssh 目录,如果没有该目录,就创建一个

shell 复制代码
cd /root/.ssh

# or
mkdir /root/.ssh

2). 上传步骤2.2下载到本地的 id_rsa.pub 文件到服务器B的 /root/.ssh 目录下

shell 复制代码
rz

3). 在服务器B的 /root/.ssh 目录下创建一个 authorized_keys 文件

shell 复制代码
touch authorized_keys

此时该目录下应该有 id_rsa.pubauthorized_keys 两个文件

4). 将公钥文件 id_rsa.pub 追加到 authorized_keys 文件中

shell 复制代码
cat id_rsa.pub >> authorized_keys

注意: 尽量不要复制粘贴 id_rsa.pub 的内容,因为有可能会出现乱码,导致免密登录失败。建议使用 cat 命令追加到 authorized_keys 文件中。

三、测试

登录服务器A,以下命令都是在服务器A中执行。

  1. 免密登录,如果能够免密登录服务器B,则表示配置成功。
shell 复制代码
ssh root@2.2.2.2
  1. 免密传输文件
shell 复制代码
# 新建一个测试文件
touch /root/test.txt

# 传输文件
scp /root/test.txt root@2.2.2.2:/root/test.txt
# 可以修改文件名
scp /root/test.txt root@2.2.2.2:/root/01.txt
  1. 免密执行命令
shell 复制代码
ssh root@2.2.2.2 "nginx -t"
# 执行脚本
ssh root@2.2.2.2 "sh /root/01.sh"

欢迎访问:天问博客

相关推荐
MayZork5 小时前
Windows 与 Linux 下 vcpkg 的安装部署指南
linux·运维·windows
zbyyd6 小时前
Linux 进程间通信学习笔记
linux·笔记·学习
w200512249 小时前
Pod管理
linux·服务器·云原生·容器·k8s·podman
chen<>10 小时前
C++ 六种 memory_order:从原子性到线程间可见性.md
java·linux·开发语言·c++
一直C11 小时前
Linux系统编程|进程间通信IPC全套详解(1)(管道、信号)
linux·c语言·开发语言·网络·青少年编程·visual studio code
库玛西11 小时前
Linux网络编程:HTTP/HTTPS协议核心技术全解析
linux·运维·服务器·网络·c++·http·https
sxd200111 小时前
Vmware和multicast
linux·windows·vmware·无线桥接·multicast
暴力求解11 小时前
Linux网络---NAT代理服务、内网穿透
linux·网络·智能路由器
一直C11 小时前
Linux系统编程|信号进阶 + SystemV IPC(消息队列、共享内存)
linux·c语言·开发语言·算法·青少年编程·vim
_F_y11 小时前
Linux网络常用指令
linux·运维·网络