ssh免密码配置

来源:互联网 发布:网络格言 编辑:程序博客网 时间:2024/05/21 06:55

ssh免密码登录配置

SSH无密码登录的原理如下

假设A机器想要通过SSH无密码登录访问B机器,则需要在A机器上生成一对秘钥(公钥+私钥),而后将公钥复制到B机器上;

A机器通过SSH链接B机器时,B机器就会生成一个随机数,并且使用A机器的公钥(通过上一步拷贝,B机器上有A机器公钥的拷贝)对随机数进行加密,并把加密的密文回送给A机器;

A机器收到密文后,用自己的私钥解密,把解密后的明文(其实就是那个随机数)再回送给B机器;

B机器收到A机器发过来明文后,与自己拥有的那一份比对确认,当确认通过后允许A机器链接自己;

(整个过程是个公钥认证过程,无需密码输入,从SSH协议角度讲,A是客户端,B是服务器端)

所以,问题的关键就是,如何在A机器上生成密钥对,并且把公钥发到B机器。

配置步骤

第一:在A机器生成秘钥对

[plain] view plain copy

1.  ssh-keygen -t rsa  

则在/root/.ssh/目录下会有两个文件:id_rsaid_rsa.pub

第二:把id_rsa.pub拷贝到本目录下一个名叫authorized_keys的文件

  1. ssh-copy-id had01 (hosts)

 

或者

[plain] view plain copy

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

第三:分别设置.ssh目录和authorized_keys文件的权限

[plain] view plain copy

1.  chmod 700 ~/.ssh  

2. chmod 600 ~/.ssh/authorized_keys  

上面操作完成后,则完成了A机器到本机(A机器)的SSH密码登录,现在要使A无密码SSH登录B

第四:在B机器新建.ssh目录与authorized_keys文件,并且雷同第三步修改权限

第五:通过scpA机器上的id_rsa.pub拷贝到B机器,并且追加到B机器的authorized_keys文件下

(完成上面步骤,则完成了A机器到B机器的无密码SSH登录)

 

当在一个由多台机器组成的集群中,我们想每两两之间都能实现SSH无密码登录,则可以规划上面的生成流程:

第一:在所有机器上生成秘钥对;

第二:迭代把自己的id_rsa.pub拷贝到其他机器,并且追加到authorized_keys文件;


比如我配置成功之后的界面如下: [hadoop@master ~]$ clear 
[hadoop@master ~]$ ssh slave1 
Last login: Mon Nov 3 13:33:02 2014 from 192.168.56.101 
[hadoop@slave1 ~]$ ssh master 
Last login: Mon Nov 3 13:33:06 2014 from 192.168.56.102 
[hadoop@master ~]$   

如果遇到登录失败的情况:我用的是centos版本是6.5centos6.5对网络管理相当严格,需要在原来的基础上关闭selinux,/etc/selinux/config下,把SELINUX=enforcing修改为SELINUX=disabled,重启机器,ok

原创粉丝点击