SSH无密码验证登录的实现

1. 前期准备:
检查是否安装了SSH服务和rsync服务(rsync是一个远程数据同步工具,可以通过LAN/WLAN快速同步多台主机之间的文件)
rpm -qa | grep openssh
rpm -qa | grep rsync
我的Centos 5.6下的显示:

如果没有安装则执行一下安装:
yum install ssh
yum install rsync
service sshd restart 启动服务
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
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
验证登录即可。
注意几点:  
  1> SSH的配置文件一定要修改,而且修改后要重启
  2> 认证文件一定要采用追加方式:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  3> authorized_keys文件的权限一定要修改为600
  4> .ssh的文件如果是手动创建的话权限一定要修改为700
(0)

相关推荐

  • centos基本信息和ssh

    CentOs系统基本配置,包括修改主机名,创建用户并授权,ssh免密登录 1 永久修改主机名 sudo vim /etc/hostname 把原主机名xxx改为master(在从主机上则改为相应的sl ...

  • ssh免密码快速登录配置

    使用ssh登录服务器的时候,需要输入ip地址.端口.用户名.密码等信息,比较麻烦,容易输错.还好,通过客户端和服务器的配置参数,可实现免密码快速登录.服务器可通过保存客户端的公钥,用于验证客户端的身份 ...

  • Centos虚拟机设置SSH免密码登录

    以下操作均需对所有虚拟机 1.使用hostname + 名称 修改虚拟机的名称,修改/etc/hosts文件,添加主机IP与名称 192.168.33.10 vmcp10 192.168.33.20 ...

  • 配置Open×××使用User/Pass方式验证登录

    Open***和PPTP ×××相比存在诸多的优势,最明显的是Open***支持NAT穿越,也就是说在nat环境下使用open***只需要一个在路由器上做一个端口映射即可!不需要其他路由的支持,要知道 ...

  • ECSHOP邮箱注册验证登录

    现在大多数正式运营的网站,注册都是必须进行邮箱(email)验证或者手机验证后才能注册成功或者成功登录的,那我们怎么通过ecshop二次开发来实现这样的功能呢?其实也比较简单,按照下面代码修改就能实现 ...

  • 1、SSH无密码访问

    1、SSH无密码访问

  • 懒人一键解决:每次连接校园网Web验证登录

    前言 每次在寝室打开电脑,插上网线(或打开WiFi),连接校园网时,都会跳出学校的网站,让你输入账户密码,登入,才可以使用校园网. 作为一个实打实的懒人,虽然有浏览器的记住密码功能,但我还是觉得麻烦, ...

  • 路由器方案板香橙派R1 Plus如何使用SSH远程登录

    不太了解OrangePi R1 Plus这款开发板的开发者,可以对比下NanoPi R2S,配置一样. 作为路由器方案板, R1 Plus适配有OpenWRT, 系统默认都开启了 ssh 远程登录,并 ...

  • (7条消息) Ubuntu开启SSH远程登录

    本文介绍如何在Ubuntu下开启ssh服务并能通过Xshell进行远程登录的方法.测试使用的是在虚拟机上装的Ubuntu和window10. 首先更新自己Ubuntu的源,具体自行解决. 更改IP地址 ...

  • ssh访问控制,多次失败登录即封掉IP,防止暴力破解

    一.系统:Centos6.9 64位 二.方法:读取/var/log/secure,查找关键字 Failed,(#cat /var/log/secure | grep Failed)例如(注:文中的I ...

  • Xamarin.Forms登录对话框及表单验证

    微信公众号:Dotnet9,网站:Dotnet9,问题或建议,请网站留言: 如果您觉得Dotnet9对您有帮助,欢迎赞赏. Xamarin.Forms登录系统 内容目录 实现效果 业务场景 编码实现 ...