Linux下生成密钥
- 通过命令”ssh-keygen -t rsa“
- 生成之后会在用户的根目录生成一个 “.ssh”的文件夹
- 进入“.ssh”会生成以下几个文件
authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥
id_rsa : 生成的私钥文件
id_rsa.pub : 生成的公钥文件
know_hosts : 已知的主机公钥清单
- 如果希望ssh公钥生效需满足至少下面两个条件:
1) .ssh目录的权限必须是700
2) .ssh/authorized_keys文件权限必须是600
远程免密登录原理
常用方法
- 手工复制粘贴的方式
将本地id_rsa.pub文件的内容拷贝至远程服务器的~/.ssh/authorized_keys文件中
- 通过ssh-copy-id的方式
ssh-copy-id -i ~/.ssh/id_rsa.put
PS:ssh-copy-id: command not found //提示命令不存在解决办法:yum -y install openssh-clients
- 通过scp将内容写到对方的文件中
scp -p ~/.ssh/id_rsa.pub root@:/root/.ssh/authorized_keys
- 通过ansible实现批量免密
将需要做免密操作的机器hosts添加到/etc/ansible/hosts下:
[Avoid close]
192.168.91.132
192.168.91.133
192.168.91.134
执行命令进行免密操作
ansible -m authorized_key -a "user=root key='{{ lookup('file','/root/.ssh/id_rsa.pub') }}'" -k