CentOS下SSH免密码登录的配置

1.在客户机创建一对**文件,包括公钥文件(~/.ssh/id_rsa.pub),私钥文件(~/.ssh/id_rsa). 

2.把公钥放到服务器上(~/.ssh/authorized_keys),在使用ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配。如果匹配成功就可以免密码登录了 

准备工作(root权限): 

1.检查ssh是否安装 

# rpm -qa | grep ssh 

如若安装显示如下: 

openssh-clients-5.3p1-81.el6.x86_64 
openssh-5.3p1-81.el6.x86_64 
openssh-server-5.3p1-81.el6.x86_64 
libssh2-1.2.2-7.el6_2.3.x86_64 

2.如果没安装,安装ssh 

# yum install -y openssh-server openssh-clients 

3.验证安装成功 

# ssh -V 

4.修改ssh配置 



  使用root登录修改配置文件:/etc/ssh/sshd_config,将以下的注释去掉,如下: 


  HostKey /etc/ssh/ssh_host_rsa_key 
  HostKey /etc/ssh/ssh_host_dsa_key 

  RSAAuthentication yes 
  PubkeyAuthentication yes 
  AuthorizedKeysFile .ssh/authorized_keys 

  IgnoreRhosts yes 


5.重启ssh服务 

# service sshd restart 

创建普通用户: 

1.创建用户 

# useradd hadoop 

2.设置密码 

# passwd hadoop 

3.切换为普通用户 

# su - hadoop 


配置SSH: 

1.生成公钥和私钥 

# ssh-****** -t rsa (生成公钥和私钥 )
CentOS下SSH免密码登录的配置
# cd .ssh 

# ls 

在.ssh目录生成两个文件: 
id_rsa      :私钥 
id_rsa.pub  :公钥 


2.导入公钥到认证文件,更改权限 

   切换为root用户 

   # su - root 

   2.1 导入本机 

       根据配置文件/etc/ssh/sshd_config中的AuthorizedKeysFile项的取值:.ssh/authorized_keys,公钥需要导入到该文件中才能实现校验 

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


       # chmod 600 authorized_keys (注意 cd /etc/ssh )
CentOS下SSH免密码登录的配置
   2.2 导入要免密码登录的服务器 
       首先将公钥复制到服务器 

       # scp ~/.ssh/id_rsa.pub [email protected]:/home/id_rsa.pub  

如:
       scp ~/root/.ssh/id_rsa.pub [email protected]:/home/id_rsa.pub  

    如果出错:

bash:scp:command not found  lost connection

yum -y install openssh-clients

成功后:

CentOS下SSH免密码登录的配置

       然后,将公钥导入到认证文件(这一步的操作在服务器上进行) 

       #cat /home/id_rsa.pub >> ~/.ssh/authorized_keys 

       注意:如果你想要每台机子都免密码登录,那么把每台机子产生的公钥都添加到authorized_keys文件中 


    2.3 在服务器上更改权限 
       # chmod 700 ~/.ssh 
       # chmod 600 ~/.ssh/authorized_keys  



注意: 
1) .ssh目录的权限必须是700 
2) .ssh/authorized_keys文件权限必须是600

 

验证是否成功:

验证任意两台机器是否可以无密码登录,如下状态说明成功,第一次访问时需要输

入密码。此后即不再需要。

[[email protected] ~]$ ssh hadoop1

Last login: Tue Aug 11 00:58:10 2015 from hadoop2