[Linux] CentOS6.4配置SSH无密码登录

Linux环境:

两台CentOS6.4系统(32bit)Linux虚拟机,运行在VMware Workstation中。网络配置为(均可简介互联网)

说明:单机版配置SSH无密码登录时,使用的主机设为Master IP:192.168.15.129,另一台主机设为Slave IP:192.168.15.131。

单机版(非集群)配置SSH无密码登录

1. 创建用户

创建hadoop用户,并为其添加root权限(hadoop用户密码:hadoop):

image

修改配置文件(/etc/sudoers)内容,如下:

vim /etc/sudoers

image

提示:若在保存该文件时出现:e45 readonly option is set (add!to override),则使用:wq!进行强制保存。

给hadoop用户创建目录,并添加到sudo用户组中,命令如下:

sudo chown hadoop /home/hadoop
# 将hadoop用户添加到sudo用户组
sudo adduser hadoop sudo

最后注销当前用户,使用hadoop用户登录。

su - hadoop

 

2. 安装SSH Sever

使用如下命令,查看系统内是否安装openssh和rsync(rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件):

image

提示:在该机器中已经安装了openssh client/server,但在一些机器中,默认只安装了openssh client,server则未安装,使用如下命令安装openssh server,并启动服务:

sudo apt-get install openssh-server

启动sshd服务(默认安装完成后,自动启动):

service sshd restart

 

3. 配置SSH无密码登录本机

输入如下命令,会有如下提示(SSH首次登陆提示),输入yes,然后按照提示输入hadoop用户密码,就可以登陆到本机(注意是此时的登录是需要密码的),需要配置成无密码登录。

image

退出SSH连接,使用:

exit

配置本机登录无密码:

依次输入下面命令,执行完成之后,就可直接无密码登录本机了:

image

可以使用ssh localhost验证,已经不需要输入密码,本机的ssh无密码登录配置完成。

注:如果使用cd ~/.ssh命令时出现:No such file or directory. 则运行一下ssh localhost命令即可。

集群配置SSH无密码登录

配置环境:

使用上述“单机版(非集群)配置SSH无密码登录”配置方式,分别在Master和Slave两个主机上分别创建hadoop用户,并完成配置本机的ssh无密码登录。

1. Master主机配置

在完成本机的SSH无密码登录之后,进行下面的操作。

1 cd ~/.ssh # 如果找不到这个文件夹,先执行一下 "ssh localhost"
2 ssh-keygen -t rsa # 因为之前进行过该操作,这里会提示是否覆盖
3 # 将id_rsa.pub追加到authorized_keys
4 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

image

这里将生成的 “ id_rsa.pub ” 追加(这里切记是追加,不是覆盖)到授权的key里面去。这样的效果是实现了当前用户无密SSH登陆到自己。

2. Slave主机配置

如果要实现无密登陆到其它的主机,只需将生成的 “ id_rsa.pub ” 追加到其它主机的 ” ~/.ssh/authorized_keys “ 文件中。

这里我们使用的方法是先将本机的 ” ~/.ssh/id_rsa.pub “ 拷贝到你想无密登陆的主机上,再在相应的主机上使用 ” cat ” 命令将” ~/.ssh/id_rsa.pub “ 追加到该主机的 ” ~/.ssh/authorized_keys “ 中。

说明:这里使用Master主机,用户名:hadoop,ip:192.168.15.129。想要无密码登录的主机:Slave,用户名:hadoop,ip:192.168.15.131.

将Master主机中的~/.ssh/id_rsa.pub文件拷贝到Slave主机中的/home/hadoop/tmp目录中:

image

命令如下:

scp ~/.ssh/id_rsa.pub hadoop@192.168.0.2:/home/hadoop/tmp

(需要说明的是:在将文件使用scp命令传递到Slave主机的/home/hadoop/tmp/目录下时,需要保证在Slave主机中存在该目录,否在会有一些问题。

image

具体的scp命令使用,见:http://www.cnblogs.com/hitwtx/archive/2011/11/16/2251254.html

然后,在Slave主机中,将拷贝得到的/home/hadoop/tmp/id_rsa.pub文件追加到~/.ssh/authorized_keys中:

cat /home/hadoop/tmp/id_rsa.pub >> ~/.ssh/authorized_keys

现在,我们就可以在A中使用SSH无密登陆到B的hadoop用户了,同理如果想无密登陆其它的主机都可以使用此方法。需要注意的是配置hadoop集群时需要Master和Slave可以互相SSH无密登陆!!!

3. 登录验证

在未设置无密码登录前,在Master中SSH登录Slave主机:

image

在设置完成无密码登录后,在Master中SSH登录Slave主机:

image

配置完成!

参考资料:

  1. http://www.cnblogs.com/lijingchn/p/5574476.html
  2. http://www.linuxidc.com/Linux/2015-02/113487.htm
  3. http://www.cnblogs.com/lijingchn/p/5580263.html
  4. Linux网络配置命令
  5. http://www.linuxidc.com/Linux/2015-02/113486.htm
  6. http://blog.csdn.net/w1014074794/article/details/50695703
  7. http://www.cnblogs.com/jhtchina/articles/4228976.html