安装SSH server并且配置无密码登录

安装SSH server并且配置无密码登录

目的:hadoop是一个分布式计算框架,其中需要ssh来登陆到各个结点,实现无密码登陆就不用每次输入密码了。

SSH简介与原理如下:

SSH是安全外壳协议,正确来说就是一个协议,专为远程登录会话和其他网络服务提供安全性的协议,可以安全的远程登陆到其它主机上,进行操作,既然是协议,那就是抽象的,非具体化的,所以就有了不同的实现,实现成ssh这样的一个C/S架构的软件,类似于TCP协议,那就有其TCP软件。目前,ssh协议是比较安全的。

原理:

ssh采用了非对称加密,非对称加密有两个密钥:“公钥”和“私钥”,公钥加密,私钥解密。

TopGun为客户端用户。以下是非对称加密登陆流程
在这里插入图片描述

  • 远程Server收到Client端用户TopGun的登录请求,Server把自己的公钥发给用户。
  • Client使用这个公钥,将密码进行加密。
  • Client将加密的密码发送给Server端。
  • 远程Server用自己的私钥,解密登录密码,然后验证其合法性。
  • 若验证结果,给Client相应的响应。

这种方法就不是绝对安全的,如果中间人用自己的公钥发送给客户端,那么客户端就和中间人进行连接了。如下图。
在这里插入图片描述

ssh解决这种问题用了两种方法:

  • 第一种级别(基于口令的安全验证)
  • 第二种级别(基于密匙的安全验证)

第一种级别(基于口令的安全验证)如下:

首先安装server端,linux都带有ssh客户端。

sudo apt install openssh-server

ssh软件使用:
第一次使用ssh的时候会高你不确定主机的真实性,填写yes之后,紧接着就让你输入的你想要连接的用户密码,你连接的主机用户密码输入正确才能进入,否则不能进入,就算有中间人攻击,你输入的密码和中间人的密码相同的概率那是相当的小。
所谓“中间人”的攻击方式, 就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。

输入密码正确之后,就会执行非对称加密登陆流程。

第一次使用之后会自动在家目录中生成一个.ssh目录,其中的known_hosts文件记录被确认的目标主机,再一次连接的时候就不会让你再次确认,就只用输入密码即可。

公钥私钥都是通过加密算法生成的参数,利用这个参数,也就是公钥在利用算法对传送的数据加密,利用私钥解密。
在这里插入图片描述
退出连接输入

exit

第二种级别(基于公钥的安全验证)如下:

第一种方法确实使安全性大大提高但是呢,每一次输入密码就很麻烦,所以就有了第二种基于公钥的安全验证。
在这里插入图片描述

  • 用户将自己的公钥存放在Server上,追加在家目录下.ssh目录中的文件authorized_keys(用户自己创建)中
  • Server端接收到Client的连接请求后,会在authorized_keys中匹配到Client的公钥pubKey,并生成随机数R,用Client的公钥对该随机数进行加密得到pubKey®,然后将加密后信息发送给Client。
  • Client端通过私钥进行解密得到随机数R,然后对随机数R和本次会话的SessionKey利用MD5生成摘要Digest1,发送给Server端。SessionKey是会话密钥,是双方通信的时候随机产生的一种密钥。
  • Server端会也会对R和SessionKey利用同样摘要算法生成Digest2。
  • Server端会最后比较Digest1和Digest2是否相同,完成认证过程。

通过以上方法完成了通过公钥完成免密码登陆,就算有中间人攻击,第一,中间人不知道你的公钥,很小概率能完成连接,第二,就算知道了你的公钥,中间人也没有私钥,也无法对server完成攻击。

实现:

cd ~/.ssh/
touch authorized_keys
ssh-keygen -t rsa
cat ./id_rsa.pub >> ./authorized_keys

会在.ssh目录下生成id_rsa 和id_rsa.pub文件,其中id_rsa.pub就是公钥,将它加入到authorized_keys中。这时就实现了免密登陆。

以上我都是用的同一台机器,也就是自己连接自己,可以下载虚拟机,模拟一下两台机器互联。
在这里插入图片描述

远程发送公钥

ssh-copy-id -i .ssh/id_rsa.pub  用户名字@192.168.x.xxx

作用: ssh-copy-id 将key写到远程机器的 ~/ .ssh/authorized_key.文件中,作用就是以免手动复制,但是第一次需要输入密码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值