目的
在做集群的时候是需要SSH互信的,利于在另一节点操作方便。
操作步骤
前奏:以两节点举例:192.168.1.1 和 192.168.1.2
1、各节点生成自己的公钥和私钥对儿
命令:ssh-keygen
作用:创建公钥和密钥,会生成
id_rsa
和id_rsa.pub
两个文件。生成ssh密钥后,密钥将默认存储在家目录下的.ssh/目录中。私钥和公钥的权限就分别为600和644。.ssh目录权限必须是700 选项:
-t rsa|dsa 默认是rsa格式。
查看产生的公钥和私钥文件
2、将自己的公钥文件发送给对方
命令:ssh-copy-id
作用:是将id_rsa.pub文件内容传输至对方的 .ssh目录中,生成文件名为 authorized_keys 文件(不会覆盖文件,是追加到文件末尾)。 并且会设置远程主机用户目录的.ssh和.ssh/authorized_keys权限。
选项:
--i指定密钥文件 。如:
ssh-copy-id -i /root/.ssh/id_rsa.pub USERNAME@HOST
如果该命令出错,说明未安装 openssh-clients 。执行 yum -y installopenssh-clients
来进行安装。
也可以使用scp等工具,把id_rsa.pub上传另一台服务器~/.ssh/下,然后改名为authorized_keys。
3、测试互信登录,是免输入密码登录成功
ssh 192.168.1.2 date
ssh 192.168.1.1 date
踩过的坑
权限问题
1、.ssh目录的权限 700
mkdir .ssh
chmod 700 .ssh
2、id_rsa.pub 、id_rsa 和 authorized_keys 文件的权限
chmod 644 id_rsa.pub
chmod 600 id_rsa authorized_keys
升级openssh后,可能提示warning信息
解决办法:将文件 known_hosts文件内容清空即可。