2022.3.4\5\7---ssh密钥无密码传输---(xxx年协议)
原文地址:GitLab 远程 定时备份 - Whitedba - 博客园 (cnblogs.com)
附:linux 的基本操作(编写shell 脚本) - 张_俊_杰 - 博客园 (cnblogs.com)
Linux下find命令详解_liangkk的博客-CSDN博客_find linux
在windows中编写shell脚本存在换行问题

以下正文:
手动转移恢复备份的数据费时费力。最好是实现远程自动传输备份的Gitlab文件。通过scp拷贝文件需要输入密码,而定时任务里面是不能输入密码的,为了克服这个问题,发现ssh密钥传输的方式可以跳过密码,然后用scp定时的传输备份的文件。
环境准备:
1.gitlab所在的服务器A(centos7,192.168.1.1)
2.备份服务器B(centos7,192.168.1.2)
步骤:
1)在gitlab服务器A上生成rsa证书
ssh-keygen -t rsa
####命令输入后一直回车,直接以用默认的
这样,在/root/.ssh下生成id_rsa 和 id_rsa.pub 两个文件,其中公共密钥保存在 /root/.ssh/id_rsa.pub,私有密钥保存在/root/.ssh/id_rsa。
2)在gitlab服务器A上cp一份rsa公钥证书
cd /root/.ssh cp id_rsa.pub id_rsa.pub.A
3)生成rsa公钥证书传输到备份服务器B
mkdir -p /root/.ssh
#####先在服务器B上创建目录/root/.ssh。
scp /root/.ssh/id_rsa.pub.A root@192.168.1.2:/root/.ssh/
#####使用scp命令进行远程复制,将服务器A生成的id_rsa.pub.A拷贝到服务器B的/root/.ssh目录下。此时需要服务器B的输入密码
4)创建authorized_keys文件
touch /root/.ssh/authorized keys
####在备份服务器B的/root/.ssh下创建authorized_keys文件,这个authorized_keys是一个文件,里面是各个设备ssh公钥文本合集
5)将id_rsa.pub.A文件内容追加到authorized_keys 文件中
cd /root/.ssh/ cat id_rsa.pub.A >> authorized_keys
####此处的cat是把id_rsa.pub.A里面的内容复制追加到authorized_keys里面
6)修改authorized_keys文件的权限
chmod 600 authorized_keys
####修改权限之前
![]()
####修改权限之后

7)修改SSH配置文件
vim /etc/ssh/sshd_config
####在配置文件中确保存在且没有注释掉如下内容
RSAAuthentication yes # 启用 RSA 认证 PubkeyAuthentication yes # 启用公钥私钥配对认证方式 AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
########设置完之后记得重启SSH服务,让设置升效
service sshd restart
上述设置完成后再次scp命令则不需要输入密码
8)编辑脚本文件
vim /root/auto_remote.sh
添加如下内容:
#/bin/bash
###gitlab备份文件存放的路径
LocalBackDir=/var/opt/gitlab/backups
###备机(服务器)存放备份文件的地址
RemoteBackDir=/root/gitlab_backup
###备机登录的账户
RemoteUser=root
###备机的ip地址
RemoteIP=192.168.150.140
###备份文件名称
BackupFile=$(find $LocalBackDir -mtime -2 -name '*.tar' )
###find /var/opt/gitlab/backups -mtime -2 -name '*.txt' -print
###备份文件传输指令
scp $BackupFile $RemoteUser@$RemoteIP:$RemoteBackDir
###scp /var/opt/gitlab/backups find -mtime -2 -name '*.txt' root@192.168.150.136:/root/gitlab_backup
9)修改文件权限
chmod 777 auto_backup_to_remote.sh
10)创建定时任务
###每天19:10执行脚本
10 19 * * * /root/auto_remote.sh


浙公网安备 33010602011771号