ubuntu默认并没有安装ssh服务,如果通过ssh链接ubuntu,需要自己在集群的各台主机上手动安装ssh-server。判断是否安装ssh服务,可以通过命令:ssh localhost测试,若出现
ssh: connect to host localhost port 22: Connection refused 表示没有还没有安装,可以通过apt安装,命令如下:
sudo apt-get install openssh-server
系统将自动进行安装,安装完成以后,先启动服务:
sudo /etc/init.d/ssh start
启动后,可以通过如下命令查看服务是否正确启动
ps -e|grep ssh
6212 ? 00:00:00 sshd
ps -e|grep ssh 6212 ? 00:00:00 sshd
如上表示启动ok。注意,ssh默认的端口是22,可以更改端口,更改后先stop,
然后start就可以了。
集群各台虚拟机上,使用 ssh-keygen -t rsa 一路按回车就行了。主要是设置ssh的密钥和密钥的存放路径。 路径为~/.ssh下
打开~/.ssh 有以下文件
id_rsa,私钥
id_rsa.pub,公钥
下面就是关键的地方了,(我们要做ssh认证。进行下面操作前,可以先搜关于认证和加密区别以及各自的过程。)
①在master上将公钥放到authorized_keys里。命令:sudo cat id_rsa.pub >> authorized_keys
②将master上的authorized_keys放到其他linux的~/.ssh目录下。
命令:sudo scp authorized_keys hadoop@slave1:~/.ssh
sudo scp authorized_keys 远程主机用户名@远程主机名或ip:存放路径。
③修改authorized_keys权限,命令:chmod 644 authorized_keys
使用命令 vi /etc/ssh/sshd_config 修改配置:
允许root登录
vi /etc/ssh/sshd_config
将PermitRootLogin值改yes
允许不输入密码登录
将PermitEmptyPasswords yes前面的#号去掉
重启服务:service sshd restart(/etc/initd.d/sshd restart)
④测试是否成功
ssh slave1 输入用户名密码,然后退出,再次ssh slave1不用密码,直接进入系统。这就表示成功了。