为了避免Ansible下发指令时输入目标主机密码,通过证书签名达到SSH无密码是一个好的方案,通过ssh-keygen与ssh-copy-id来实现快速证书的生成及公钥下发,其中ssh-keygen生成一对密钥,ssh-copy-id来下发生成的公钥。
1、执行 ssh-keygen -t rsa 生成密钥对
这时当前用户home目录下面会生成一对密钥,id_rsa 为私钥,id_rsa.pub 为公钥。
2、通过 ssh-copy-id 进行传输公钥
接着登录目标主机 ssh root@192.168.1.200,无须密码即可登录成功。并且查看当前用户下的 .ssh/目录,发现多出了两个文件:
1)known_hosts 用于验证连接的主机是否正确
2)authorized_keys 用来存放其他主机的公钥信息