博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

SSH免密码登录

Posted on 2016-11-08 15:26  来碗酸梅汤  阅读(1025)  评论(0编辑  收藏  举报

SSH免密码登录目的是为了执行HDFS脚本时使用,而不是为了搭建HDFS使用,配置hadoop集群时,不怕输密码麻烦也可以不配置SSH免密码登录

SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。

这里只记录本人在搭建hadoop HA时如何设置免密码登录,至于基本原理等如有不理解需自行百度。

这里本人使用root用户,若改为普通用户需考虑权限问题

1、第一次检查 

ssh localhost 

PS:远程成功后记得exit退出

2、创建本地秘钥并将公共秘钥写入认证文件

每台机器创建私钥,公钥

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

 这时~/.ssh目录下会生成私钥和公钥的键值对 id_dsa 和 id_dsa.pub

node1将公钥写入认证文件中,将node1的认证文件拷贝到node2

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys root@node2:~/.ssh/authorized_keys

将node2的公钥追加到认证文件中

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

 

查看node2 的 ~/.ssh/authorized_keys 发现

查看authorized_keys里面有多个server的公钥信息,如果你有多个server同样往里面加就好了

node1将公钥写入认证文件后,authorized_keys里面的server公钥信息增加了  root@node1

root@node2是node2将公钥信息加入认证文件中的而结果

当一台机器的认证文件中有了server对应的公钥信息,例如root@node1,则node1这台

机器ssh这台机器是免密码的。

3、将~/.ssh/authorized_keys文件复制到各节点上

scp ~/.ssh/authorized_keys root@node1:~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys root@node3:~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys root@node4:~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys root@node4:~/.ssh/authorized_keys

  这时候再ssh登录,这时候就不用再输入密码啦

4、注意:

当用户为非root用户时需要

更改authorized_keys权限

chmod 600 authorized_keys

并在root用户下重启一下ssh

/etc/init.d/sshd restart