需求
为了保证一台Linux主机的安全,所以我们每个主机登录的时候一般我们都设置账号密码登录。但是很多时候为了操作方便,我们都通过设置SSH免密码登录。
在这里我对本地机器Cloud10和目标机器Cloud11、Cloud12进行免密登录
大致的三步
1.本地机器生成公私钥
2.上传公钥到目标机器
3.测试免密登录
具体操作
1.准备工作
- 使用root权限分别修改每台机器的hosts,添加每台机器所对应的IP和主机名(我这里分布式集群是3台机器组成的,所以配置3台,习惯将自己的ip和主机名放在第一行)
sudo vim /etc/hosts
删除文件里内容后添加如下内容

- 查看本地机器的隐藏文件 .ssh
ll -a

2.在本地机器用ssh-keygen 生成一个公私钥对
在ssh目录下进行,输入三个回车
进入.ssh目录cd .ssh - 发起公钥请求
ssh-keygen -t rsa

- 在.ssh/目录下,会新生成两个文件:id_rsa.pub和 id_rsa

3.上传公钥到目标机器ssh-copy-id [email protected]ssh-copy-id hduser@Cloud12
注意:(@前边是接受公钥机器的用户名,后边是接受放的ip,因为配置了映射所以ip可以用主机名代替)

- 查看远程从节点主机上是否接收到 authorized_keys文件


- 这个时候Cloud10的公钥文件内容会追加写入到Cloud11的 .ssh/authorized_keys
文件中查看Cloud11下的authorized_keys文件与Cloud10下的id_rsa.pub中内容是一样的,如下图所示


- 重启 SSH服务命令使其生效:(3台机器都要重启)
sudo service sshd restart

另外我们要注意,
.ssh目录的权限为700,其下文件authorized_keys和私钥的权限为600。否则会因为权限问题导致无法免密码登录。我们可以看到登陆后会有known_hosts文件生成。
chmod -R 700 .ssh/
sudo chmod 600 .ssh/authorized_keys
4.测试免密登录
使用IP免密登录(用户名相同时,ssh+主机名;如果不同,登录方式就是 ssh+用户名@IP地址)
ssh Cloud10
ssh Cloud11
ssh Cloud12

- 退出免密登录
exit

注意事项
- 免密码登录的处理是用户对用户的,切换其他用户后,仍然需要输入密码
- 远程机器的.ssh目录需要700权限,authorized_keys文件需要600权限
否则配置是不成功的(每次登录都得重新去输入密码的)
https://blog.csdn.net/SXY16044314/article/details/90605069
https://blog.csdn.net/ZJ_comeon/article/details/125396862
https://blog.csdn.net/u012814506/article/details/50932898
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。