三台 CentOS 系统完成无密钥登录
配置方式有两种:手动复制和命令复制
1.手动复制
(1)将各节点的公钥加入到同一个授权文件中
1)在 centos01 节点中,生成密钥文件,并将公钥信息加入到授权文件中
$ ssh localhost # 创建 ~/.ssh/ 目录 $ cd ~/.ssh/ $ ssh-keygen -t rsa # 生成密钥文件,提示输入的加密信息,一路回车即可 $ cat ./id_rsa.pub >> ./authorized_keys # 将密钥内容加入到授权文件中
2)在 centos02 节点中,生成密钥文件,并将公钥文件复制到 centos01 节点的相同目录
$ ssh localhost $ cd ~/.ssh/ $ ssh-keygen -t rsa $ scp ~/.ssh/id_rsa.pub hadoop@centos01:~/.ssh/id_rsa.pub.centos02 # 复制到 centos01 节点
3)在 centos03 节点中,生成密钥文件,并将公钥文件复制到 centos01 节点的相同目录
$ ssh localhost $ cd ~/.ssh/ $ ssh-keygen -t rsa $ scp ~/.ssh/id_rsa.pub hadoop@centos01:~/.ssh/id_rsa.pub.centos03
4)在 centos01 节点中,将 centos02 和 centos03 节点的密钥文件信息都加入到授权文件中
$ cat ./id_rsa.pub.centos02 >> ./authorized_keys $ cat ./id_rsa.pub.centos03 >> ./authorized_keys
(2)复制授权文件到各个节点
$ scp ~/.ssh/authorized_keys hadoop@centos02:~/.ssh/ $ scp ~/.ssh/authorized_keys hadoop@centos03:~/.ssh/
(3)测试无密钥登录
ssh centos01 ssh centos02 ssh centos03
如果登录失败,则修改授权文件 authorized_keys 的权限
$ chmod 700 ~/.ssh $ chmod 600 ~/.ssh/authorized_keys
2.命令复制方式
ssh-copy-id 命令可以把本地主机的公钥复制并追加到远程主机的 authorized_keys 中文件中
该命令也会给远程主机的用户主目录、~/.ssh 目录和 ~/.ssh/authorized_keys 设置合适的权限
(1)在三个节点中生成密钥文件
$ cd ~/.ssh/ $ ssh-keygen -t rsa
(2)在三个节点中分别将公钥信息复制并追加到对方节点的授权文件 authorized_keys 中
$ ssh-copy-id centos01 $ ssh-copy-id centos02 $ ssh-copy-id centos03