ubuntu集群下ssh配置总结

时间:2023-03-09 08:39:29
ubuntu集群下ssh配置总结

最重要的前提就是:集群中的所有机器的用户名和用户组必须一样

一般做法都是在每台机器上新建用户组和用户名。

比如:sudo addgroup sparks 新建用户组sparks;

   sudo adduser spark sparks 在新建用户组sparks中添加用户spark

   sudo adduser spark sudo 添加sudo权限

补充说明:

   ubuntu默认root是不能使用,这一点个人感觉不如cntos方便,命令经常要加sudo

继续说ssh的事情,步骤:

   1.首先确认每台机器都安装了openssh-server,ubuntu默认安装了openssh-client

     查看方法:ps -e |grep ssh

         1028 ?        00:00:00 sshd     已安装

         如果没有,执行sudo apt-get install openssh-server安装即可

   2.分别先在每台机器执行 ssh-keygen -t rsa ,当然rsa只是一种方式,也可以用别的,比如dsa

     具体ssh-keygen 可以查看help

     会在~/ 目录下生成 .ssh文件,原来是没有cd ~/.ssh 可以看到id_rsa.pub(公钥)和id_rsa(私钥)

   3.主从式集群结构master和slave

将每台slave的公钥拷贝到master

     例如:在slave1机器上

scp ~/.ssh/id_rsa.pub spark@master:~/.ssh/pub1

在slave2机器上

scp ~/.ssh/id_rsa.pub spark@master:~/.ssh/pub2

…………………

   4.在master的~/.ssh下,将pub1,pub2等等追加到authorized_keys文件

      authorized_keys该文件默认是不存在(除非以前配过ssh)

直接cat pub1 pub2 >> authorized_keys

5.    将包含所有机器公钥的authorized_keys在分发给所有的slave,即可

     scp ~/.ssh/authorized_keys spark@slave1:~/.ssh/

以上演示主要是说明原理,实际工作均用脚本化完成!     

然后就可以在任意机器无密码访问别的机器

ssh slave1

如果出现:

     Agent admitted failure to sign using the key

   执行ssh-add即可!