一、系统迁移
1.查看主目录:登录jenkins网站,在系统管理->系统配置页面,可以查看到主目录地址
由上图可知,jenkins主目录地址为根目录下隐藏目录:/root/.jenkins。
进入到主目录下,可以看到很多文件,是否需要全部打包呢?其实只需要打包4个文件就可以了,如上图所示分别是config.xml文件,jobs文件夹,users文件夹和plugins文件夹。从名称上就可以看出来各自的作用,config.xml是存放配置信息的,jobs是存放创建的工程项目的,users是存放用户账信息的,plugins是存放插件的。
由于包含两个目录,所以建议先打包:
[root@localhost .jenkins]# tar -czvf jenkins.tar.gz config.xml jobs/ plugins/ users/
打包完成后可发现一个名为jenkins.tar.gz的文件,这时可以通过scp命令传到新的jenkins服务器上去:
scp jenkins.tar.gz root@192.168.6.12:/root/.jenkins
二、配置免密传输
如果长时间在两个服务器之间进行文件传输的话可以将两台服务器配置密钥对后使用scp命令可以不用密码。
2.1 生成密钥对
假设A,B两服务器,现在需要在A机上用root登陆B机,而不需要输入密码。那我们可按照下面的步骤来做:
# 在本地服务器A上生成rsa证书,运行命令:
ssh-keygen -t rsa
1、生成的过程中提示输入密钥对保存位置,直接回车,接受默认值就行了。
2、接着会提示输入一个密码,直接回车,让它空着。当然,也可以输入一个密码。
3、接着输入确认密码,输入完之后,回车密钥对就生成完了。
# 完整运行如下所示:
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:xNBtzmkuOigVLN+bLwi3Owcni70/YI/sjRug6wZKd8M root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
| .. . |
| o. o |
| . o+ . |
| . o . = |
| .o.o So |
|.o.oOEo . . |
|= .Oo%.+ . |
|.oo X+X |
|+. o*Bo=. |
+----[SHA256]-----+
在/root/.ssh下生成id_rsa 和 id_rsa.pub 两个文件,
其中公共密钥保存在 /root/.ssh/id_rsa.pub,私有密钥保存在/root/.ssh/id_rsa。
# 在本地服务器A上cp生成rsa公钥证书,然后在/root/.ssh下复制备份一份id_rsa.pub 命名为 id_rsa.pub.A,以便拷贝到远程服务器B。
执行cp命令复制:
cp id_rsa.pub id_rsa.pub.A
2.2、cp生成rsa公钥证书到远程服务器B
使用scp命令进行远程复制,将A机生成的id_rsa.pub.A拷贝到远程服务器B的/root/.ssh目录下:
[root@localhost .ssh]# scp /root/.ssh/id_rsa.pub.A root@192.168.6.13ip:/root/.ssh/
root@192.168.6.13's password:
id_rsa.pub.A
这里使用scp命令需要输入密码,当我们把下面的第三步执行完毕之后,以后本地服务器A使用scp命令复制文件到远程服务器B的话,就不需要再次输入密码。
三、密钥配对
3.1 创建authorized_keys文件
当第二步将服务器A上的id_rsa.pub.A 文件copy到了服务器B的目录/root/.ssh下之后截图如下:
现在在 B 的/root/.ssh下创建authorized_keys文件,使用如下命令:
touch authorized_keys
3.2、通过 cat 命令 把id_rsa.pub.A 追写到 authorized_keys 文件中,命令依次如下:
cat id_rsa.pub.A >> authorized_keys
3.3 修改authorized_keys文件的权限
执行如下命令,修改authorized_keys文件的权限
chmod 400 authorized_keys
authorized_keys文件的权限很重要,如果设置为777,那么登录的时候,还是需要提供密码的。
3.4 测试
测试服务器A使用scp命令复制文件到服务器B是否还需要密码
在服务A上,再次使用刚才的命令,发现已经可以不需要输入密码。