CentOS 集群机器之间ssh免密

来源:互联网 发布:最新数据库编程工具 编辑:程序博客网 时间:2024/05/16 02:51

CentOS 集群机器之间ssh免密

简介

  SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。
  为后续搭建Hadoop集群或其他集群应用时于机器之间免密码登录和执行脚本。
  下面的命令预设都是在hadoop用户下执行。

生成SSH密钥

集群中的每台主机上执行下面命令,一路回车,可生成本机的rsa类型的密钥。

ssh-keygen -t rsa

执行完之后在~/.ssh/目录下会生成一个保存有公钥的文件:id_rsa.pub

修改每台机器上~/.ssh/目录权限:

sudo chmod 700 ~/.shh

把公钥写入authorized_keys文件

在其中一台主机上执行如下命令:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

把其他主机公钥写入到同一authorized_keys

使用scp 将authorized_keys文件拷贝到下一个机器,并且将下一个机器的公钥追加到authorized_keys文件中

scp ~/.ssh/authorized_keys host2@hadoop:/home/hadoop/.ssh
cat ~/.ssh/id_rsa_pub >> ~/.ssh/authorized_keys

重复上面步骤,依次把所有主机公钥写入~/.ssh/authorized_keys

将最终~/.ssh/authorized_keys同步到所有集群机器中

修改最终~/.ssh/*文件权限为600

sudo chmod 600 ~/.ssh/*

使用scp依次将~/.ssh/authorized_keys拷贝到其他机器上

验证

远程登录

ssh  host1

远程执行shell

ssh hadoop@host1 'ls'

异常

若提示hostname问题,删除文件

rm ~/.ssh/know-hosts
原创粉丝点击