ubuntu实现无密码登陆

 

环境说明:

打在ubuntu系统的两台计算机masterslave1

两台计算机均已安装ssh服务

两台机器上都存在用户xuyizhen 

 

下面开始配置:

master节点上执行以下命令:

 

 这条命是生成密钥对,询问其保存路径时直接回车采用默认路径。生成的密钥对:id_rsaid_rsa.pub,默认存储在"/home/xuyizhen/.ssh"目录下。

  接着在master节点上做如下命令,把id_rsa.pub追加到授权的key里面去。



  

修改文件"authorized_keys" 权限:



  

root用户登录服务器修改文件"/etc/ssh/sshd_config"的下列内容

 

将下列内容所在行的前面的#去掉

RSAAuthentication yes # 启用 RSA 认证

PubkeyAuthentication yes # 启用公钥私钥配对认证方式

AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径

 
设置完之后记得重启SSH服务,才能使刚才设置有效。

/etc/init.d文件夹下放置系统的服务,ssh是一种服务)
ubuntu实现无密码登陆_第1张图片
 

退出root登录,使用xuyizhen普通用户验证是否成功。


ubuntu实现无密码登陆_第2张图片
  

从上图中得知无密码登录本级已经设置完毕.

接下来的事儿是把master公钥复制slave1。使用下面的命令格式复制公钥:

192.168.0.22slave1的地址)


ubuntu实现无密码登陆_第3张图片
  

slave1机器上创建.ssh文件夹,然后修改文件夹".ssh"的用户权限,



  

到目前为止,在slave1机器上,关于master的公钥也有了,文件夹".ssh"也有了,且权限也修改了。

下一步就是把master的公钥追加到slave1的授权文件"authorized_keys"中去。

使用下面命令进行追加并修改"authorized_keys"文件权限:

 

4)root用户修改xuyizhen3computer节点的"/etc/ssh/sshd_config"



  


ubuntu实现无密码登陆_第4张图片
  

记得重启ssh服务



  

最后记得把"/home/xuyizhen/"目录下的"id_rsa.pub"文件删除掉。



  

到此为止,我们经过前5步已经实现了从masterslave1的无密码登录.(由于我们的配置工作是针对xuyizhen用户的,所以只有xuyizhen用户能实现无密码登陆,如果想实现其他用户如root用户的无密码登陆,只需要在其他用户下操作上述过程即可)

 

以上是配置两台计算机之间的无密码登陆,假设现在要配置3台机器之间的无密码登陆,以ABC为例,那么就得依次生成密钥对,再通知其他机器。

A生成密钥对,A配置完毕后,将公钥给BC,再分别到BC上配置,这实现ABC的无密码登陆。

B生成密钥对,B配置完毕后,将公钥给AC,再分别到AC上配置,这实现BAC的无密码登陆。

C生成密钥对,C配置完毕后,将公钥给AB,再分别到AB上配置,这实现CAB的无密码登陆。

至此,才实现了ABC之间的无密码登陆。

 

好了,至此配置应该没有什么问题了,下面我们来说原理:

A,B为例,以前从A登陆B,总是需要密码验证,很繁琐。那么我可以不可以使用密码登陆一次之后,就让B记住当前登陆的就是A,我们想到密钥对了,在A上生成密钥对,然后将A的公钥传给B,这样以后B就可以通过验证是否与A的公钥匹配来判断当前登陆的的是否是A了。

关于ssh协议,请看http://blog.csdn.net/macrossdzh/article/details/5691924

 

 

你可能感兴趣的:(Hadoop)