在部署集群时经常遇到客户只有一台跳板机通往各个服务器,控制端需要配置免密码登录,使集群之间能够部署我们的服务。
更安全 Ed25519 算法
步骤:
- 在控制端生成密钥
- 把生成的公共密钥添加到需要免密登录的服务器中
前提: 你已经可以通过 SSH 登录服务器了
1. 在控制端生成密钥
更安全 Ed25519 算法
ssh-keygen -t ed25519 -N '' -f ~/.ssh/id_ed25519
或者传统 RSA 算法
ssh-keygen -t rsa -b 2048 -N '' -f ~/.ssh/id_rsa
如果知道其他服务器密码使用以下命令即可,后面无需操作。
ssh-copy-id $IPs
本文使用Ed25519算法后生成的秘钥文件如下:
id_ed25519 id_ed25519.pub known_hosts
其中的cat id_ed25519.pub文件就是公共密钥,需要cp到其他服务器。
先在控制端配置好authorized_keys文件。
cat /root/.ssh/id_ed25519.pub >> /root/.ssh/authorized_keys
最后把authorized_keys复制到各个服务器的/root/.ssh下即可实现免密登录。
如果其他服务器没有/root/.ssh/文件夹需要mkdir -p /root/.ssh/
手动创建一个。
scp /root/.ssh/id_ed25519.pub root@192.168.1.2:/root/.ssh/authorized_keys
注: 如果不知道其他服务器密码,也可以手动把控制端的密码复制到被控端的authorized_keys中