首页 > 科技 > Linux SSH免密钥登录总结

Linux SSH免密钥登录总结

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

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.sosokankan.com/article/182882.html

setTimeout(function () { fetch('http://www.sosokankan.com/stat/article.html?articleId=' + MIP.getData('articleId')) .then(function () { }) }, 3 * 1000)