SSH无密码验证登录的实现(转摘)

简介: 今天开始在集群中配置HADOOP, 三个节点,一个是NAME-NODE, 两个是DATA-NODE。 配置SSH无密码验证登陆时,不太成功。找了网上CASE。 原来是自建.ssh目录时,没有将权限设置为700,而AUTHORIZED_KEYS的权限要设置为600. 按以下文章配置后,一切OK。

 

今天开始在集群中配置HADOOP,

三个节点,一个是NAME-NODE,

两个是DATA-NODE。

配置SSH无密码验证登陆时,不太成功。找了网上CASE。

原来是自建.ssh目录时,没有将权限设置为700,而AUTHORIZED_KEYS的权限要设置为600.

按以下文章配置后,一切OK。

是为记。

~~~~~~~~~~~~

http://www.2cto.com/os/201301/186673.html

1. 前期准备:

 检查是否安装了SSH服务和rsync服务(rsync是一个远程数据同步工具,可以通过LAN/WLAN快速同步多台主机之间的文件)
 rpm -qa | grep openssh 
 rpm -qa | grep rsync 
我的Centos 5.6下的显示:   www.2cto.com  
 
如果没有安装则执行一下安装:
yum install ssh 
yum install rsync 
service sshd restart 启动服务   www.2cto.com  
1. SSH无密码验证的原理
 Master作为客户端,要实现无密码公钥认证,连接到服务器Salve上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Salve上。当Master通过SSH链接到Salve上时,Salve会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Salve,Salve确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,期间不需要手工输入密码,重要的过程是将Master上产生的公钥复制到Salve上。  
2. 实际操作过程
 3.1 Master实现无密码登录Salve
 1> 以root用户登录,更改SSH的配置文件
 vi /etc/ssh/sshd_config 
 
 RSAAuthentication yes # 启用 RSA 认证
 PubkeyAuthentication yes # 启用公钥私钥配对认证方式
 AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径
 重启SSH服务: service sshd restart    www.2cto.com  
 2> 以新建用户hadoop身份登录
 su - hadoop 
 ssh-keygen -t rsa 生成密钥文件,一切按默认的方式生成,密钥文件生成后默认存放位置为/home/hadoop(你的用户名)/.ssh
 
  查看生成文件: ll .ssh 下面的这两个即为生成的密钥对
 
  将id_rsa.pub加到授权的key里面去:cat id_rsa.pub >> authorized_keys 
 
 修改authorized_keys的权限,(这一步很重要不然的话,SSH时仍然需要密码)
 chmod 600 authorized_keys 
 
  查看本机是否可以SSH无需密码登录: ssh localhost 
 
  OK , 以上证明本机登录成功。 
  接下来要做的就是将Master的公钥id_rsa.pub复制到Salve上去,并加入到授权的key中。
 scp ~/.ssh/id_rsa.pub hadoop@192.168.171.133:~/
 
  由于首次登录还没有添加认证,这次仍然会提示输入密码
  以hadoop身份登录Salve节点(注意此前意见以root身份对ssh的配置进行修改,方式同上)
 
  确认文件存在
 如果不存在.ssh 则创建文件夹.ssh,并将权限修改为700,这一步非常重要因为默认创建的.ssh文件夹的权限为700,手工创建不修改权限的话不能成功,修改权限后将该 
  id_rsa.pub添加到授权的key中:
  mkdir .ssh 
  chmod 700 .ssh 
 cat ~/id_rsa.pub >> ~/.ssh/authorized_keys 
  修改authorized_keys的权限为600
  chmod 600 ~/.ssh/authorized_keys 
  进入Master节点,检查能否登录Salve节点:
 ssh 192.168.171.133
 
  OK , 在Master上无密码登录Salve成功
3.1.2 同样在Savle上生成密钥对,并添加到Master授权中,就可以实现相互无密码登录了。
 ssh-keygen -t rsa 
 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 
 scp ~/.ssh/id_rsa.pub hadoop@192.168.171.131:~/
 cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
 验证登录即可。
注意几点:  www.2cto.com  
  1> SSH的配置文件一定要修改,而且修改后要重启
  2> 认证文件一定要采用追加方式:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  3> authorized_keys文件的权限一定要修改为600
  4> .ssh的文件如果是手动创建的话权限一定要修改为700 
 
目录
相关文章
|
1月前
|
域名解析 网络协议 Ubuntu
虚拟机ip不停地变每次使用ssh不好登录?有手就行!
虚拟机ip不停地变每次使用ssh不好登录?有手就行!
29 1
|
11天前
|
弹性计算 运维 Shell
基于key验证多主机ssh访问
【4月更文挑战第30天】
22 1
|
12天前
|
监控 前端开发 安全
【专栏】介绍了前端工程师如何掌握SSH命令,包括SSH协议的基础知识、命令行操作如登录、文件传输、目录管理和进程管理
【4月更文挑战第29天】本文介绍了前端工程师如何掌握SSH命令,包括SSH协议的基础知识、命令行操作如登录、文件传输、目录管理和进程管理。在前端开发中,SSH用于部署项目、协同后端开发及服务器监控。文章还强调了使用密钥认证、配置别名及安全注意事项,并提醒开发者面对问题时如何解决。学习和熟练运用SSH是前端工程师适应复杂项目需求的关键。
|
17天前
|
安全 Unix Linux
基于MobaXterm工具的Linux远程SSH登录
本文介绍了如何使用 MobaXterm 进行 Linux 远程登录。首先,从官方网站下载并安装 MobaXterm。启动后,创建新的远程会话,选择 SSH 类型,输入服务器 IP、主机名和端口。接着,提供用户名和密码进行连接。成功后,即可使用远程终端执行命令。此外,文章还提到了其他常用的 Linux 远程登录工具,如 PuTTY、OpenSSH、SecureCRT 和 Xshell,强调了选择工具时应考虑个人偏好和安全需求。
|
17天前
|
Ubuntu Shell Linux
Shell批量SSH免交互登录认证
Shell批量SSH免交互登录认证
|
2月前
|
安全 Shell 网络安全
ssh配置无密码验证
ssh配置无密码验证要在SSH中配置无密码验证,您需要使用公钥验证【2月更文挑战第18天】
43 1
|
3月前
|
安全 网络协议 Linux
|
3月前
|
安全 网络协议 Shell
SSH连接密码问题:原因、表现与解决方案
SSH连接密码问题:原因、表现与解决方案
144 3
|
3月前
|
关系型数据库 网络安全 数据库
通过SSH登录OceanBase数据库需要修改用户密码,然后使用SSH客户端进行远程登录
通过SSH登录OceanBase数据库需要修改用户密码,然后使用SSH客户端进行远程登录
80 6
|
9月前
|
安全 Ubuntu Linux
如何在 Linux 中设置 SSH 无密码登录
如何在 Linux 中设置 SSH 无密码登录
167 0