【Linux安全】SSH免密登录

打印 上一主题 下一主题

主题 830|帖子 830|积分 2490

前言

通过SSH实验长途登陆有两种方式:口令登录和公钥登录。本文将从这两种登陆方式的原理展开来讲解如何实现SSH免密登录服务器。
一、SSH简介

● SSH(Secure Shell,安全外壳)是一种网络安全协议,为建立在应用层基础上的安全协议。SSH较为可靠,专为长途登录会话和其他网络服务提供安全性。利用SSH协议可以有用防止长途管理过程中的信息泄漏题目,可以通过加密和认证机制实现安全的访问和文件传输等业务。
● SSH两种安全验证方式:基于口令的安全验证、基于密钥的安全验证
● SSH默认端口为22
二、SSH两种安全验证原理

1. 基于口令的安全验证

假设主机A需要长途毗连服务器B,只要A知道B的帐号和密码,就可以登录到长途主机,而且所有传输的数据都会被加密。但是这种通过口令登陆的方式不能保证正在毗连的服务器就是你想毗连的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。


  • 基于口令的安全验证流程:

  • 基于口令的安全验证存在的威胁
    https协议的公钥具有CA证书,难以被冒充,但是ssh协议的公钥并没有此类证实身份的证实,因此基于口令的安全验证方式存在被伪造公钥的风险。例如主机A在向服务器B发送请求时,假如此时该登录请求被主机C截获,主机C伪造一份公钥发送给主机A,主机A在不知情的情况下利用C给的公钥举行了密码的加密,再将加密后的密码发送给主机C,此时主机C就可以用自己的私钥将密码解密出来。
2. 基于密钥的安全验证

假设主机A需要长途毗连服务器B,此时主机A需要为自己生成一对密钥(公钥+私钥),并把自己的公钥存放在服务器B上的~/.ssh/authorized_keys的文件里,当主机A向服务器B发送请求后,服务器B会在自己的~/.ssh/authorized_keys文件中查找是否有主机A的公钥,假如ssh_key文件中存放的主机A的公钥和主机A发送请求时的公钥同等,那么服务器B就会向主机A发送质询,主机A利用私钥对质询举行解密再发送给服务器B,B确认质询后同意建立会话。
基于密钥的安全验证不需要在网络上举行密码的传输而且私钥永久掌握在主机A手里,因此可以很好的抵抗中间人攻击。


  • 基密钥的安全验证流程:

三、SSH免密登录

通过对SSH两种安全验证机制的了解,可以发现利用口令登录的方式需要输入密码,而利用公钥登陆的方式制止了输入密码这个步骤。因此SSH基于密钥的安全验证方式可以实现SSH长途免密登录。
实现SSH免密登录的步骤如下:

  • 当地生成密钥对
  • 将公钥放入服务器的~/.ssh/authorized_keys文件中
  • 免密登录服务器
1. 当地生成密钥对

利用ssh-keygen生成一对密钥,生成的私钥将存放在用户目次下的.ssh/id_rsa中,公钥将存放在用户目次下的.ssh/id_rsa.pub中

生成的两个密钥文件:

2. 将公钥放入服务器中

首先登录服务器,将刚刚在本机生成的公钥复制到服务器的~/.ssh/authorized_keys文件中

查察authorized_keys文件,可以看到公钥已经被写入。

~/.ssh/authorized_keys文件中可以存放多个主机的公钥,每个公钥背面会利用主机名来区分

3. 免密登录服务器

完成以上设置后在本机利用SSH可以免密登录服务器


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

写过一篇

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表