微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

2022.3.7---ssh密钥无密码传输

手动转移恢复备份的数据费时费力。最好是实现远程自动传输备份的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 [email protected]:/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命令则不需要输入密码

把scp命令加入到crontab -e中即可

 














 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐