配置多台服务器之间ssh免密登录

使用scp 或者 rsync命令在多台Linux服务器之间同步文件时需要输入密码,除了使用expect实现自动化交互以外,还有一种方法就是配置服务器之间ssh免密登录,本文记录一下具体配置过程。

1. 创建.ssh目录

假定有3台Linux主机,分别为A,B,C

在所有主机上创建ssh目录并赋予权限

mkdir /root/.ssh 
chmod 700 /root/.ssh

2. 生成公钥与私钥

所有主机生成公钥与私钥,执行以下命令:

$ cd ~  # 进⼊入用户目录
$ ssh-keygen -t rsa -P ""  # 生成ssh密码,-t 参数表示生成算法,可以选择rsa和dsa;-P表示使用的密码,""表示无密码。

3. 将公钥追加authorized_keys文件中

将第一台主机A上生成公钥追加到authorized_keys文件中

$ cd ~/.ssh  # 进入.ssh目录
$ cat id_rsa.pub >> authorized_keys   # 将id_rsa.pub的内容追加到authorized_keys文件中

然后可以删除A上的id_rsa.pub文件,因为已经写进了authorized_keys文件中

$ rm -rf id_rsa.pub 
或者
$ mv id_rsa.pub id_rsa.pub.copy

接下来将B和C的id_rsa.pub写入到A的authorized_keys文件中,使用scp 或者 rsync命令分别将B和C两台机器的id_rsa.pub复制到主机A 。(scp 或者 rsync命令的使用方法可参考文章使用SCP或Rsync实现Linux主机之间文件、目录的复制

在主机B上操作 :

$ scp id_rsa.pub hostA:~/.ssh/ # hostA为A的主机名或者A的IP地址

也可以直接在主机A上操作,执行如下命令:

$ scp hostB:~/.ssh/id_rsa.pub ~/.ssh/

在主机A上执行如下命令,将主机B的id_rsa.pub文件内容添加到authorized_keys文件中:

$ cat id_rsa.pub >> authorized_keys
$ mv id_rsa.pub id_rsa.pub.copy2

主机C类似,将C的id_rsa.pub文件内容添加到authorized_keys文件中。

这样authorized_keys文件里面保存了主机A,B,C的公钥,然后将authorized_keys文件拷贝到其它两台主机上就可以了:

$ scp authorized_keys hostB:/root/.ssh/
$ scp authorized_keys hostC:/root/.ssh/

4. 测试

ssh root@要进行链接的机器ip地址

主机A -> B:

[root@hostA ~]# ssh root@192.168.20.20
Last login: Sat Jul 10 10:17:34 2021 from hostA
[root@hostB ~]# 

主机B -> A:

[root@hostB ~]# ssh root@192.168.20.10
Last login: Sun Jul 11 19:54:08 2021 from hostB
[root@hostA ~]# 
--THE END--

欢迎关注公众号:「测试开发小记」及时接收最新技术文章!

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值