Linux系列学习第十三天——一步一步教会你如何使用Linux

1,468

“这是我参与8月更文挑战的第29天,活动详情查看:8月更文挑战

茫茫人海千千万万,感谢这一秒你看到这里。希望我的文章对你有所帮助!

愿你在未来的日子,保持热爱,奔赴山海!

Linux的高级命令

昨天我们已经将Linux的防火墙管理的命令学习了,知道了在Linux中如何去关闭防火墙,因为有些应用需要访问我们虚拟机的话,需要我们去开启某些端口允许外部访问或者关闭防火墙的操作!当然我们的学习不止于此。今天我们对Linux的免密登录学习! Let's GO!

Linux的SSH有密登录和免密登录

SSH 是一种网络协议,是 Secure Shell(安全外壳协议)的缩写,用于计算机之间的加密登录。

SSH 登录有两种验证机制:

  1. 基于口令的安全验证(有密登录)
  2. 基于秘钥登录的验证方式(免密登录)

登录远程服务器

命令:

ssh ip地址

演示:

有密登录效果

免密登录效果:要想实现免密,需要实现下面的步骤。

对称加密和非对称加密

ssh的主要就是安全性,安全性依赖于加密方式,现在主要的加密方式有两种:对称加密和非对称加密。

  • 对称加密

    对称加密使用同一个密钥来进行加密和解密,这样在传输时是安全可靠的,但是如何安全的保存密钥呢,在集群中,客户端的数量巨大,一旦任意一个客户端的密钥被窃取,那么整个系统的安全性也不复存在。

  • 非对称加密

    由于对称加密的这个弊端,产生了非对称加密,非对称加密中有两个密钥:公钥和私钥。公钥由私钥产生,但却无法推算出私钥;公钥加密后的密文,只能通过对应的私钥来解密。

    非对称加密的登录流程:

    在非对称加密中,由于只有公钥会被传输,而私钥是服务端本地保存,因此即便公钥被监听,也无法拿到原始密码,从而登录服务器。

SSH免密登录原理

  1. 在客户端使用ssh-keygen生成一对密钥:公钥+私钥
  2. 将客户端公钥追加到服务端的authorized_key文件中,完成公钥认证操作
  3. 认证完成后,客户端向服务端发起登录请求,并传递公钥到服务端
  4. 服务端检索authorized_key文件,确认该公钥是否存在
  5. 如果存在该公钥,则生成随机数R,并用公钥来进行加密,生成公钥加密字符串pubKey(R)
  6. 将公钥加密字符串传递给客户端
  7. 客户端使用私钥解密公钥加密字符串,得到R
  8. 服务端和客户端通信时会产生一个会话ID(sessionKey),用MD5R和SessionKey进行加密,生成摘要(即MD5加密字符串)
  9. 客户端将生成的MD5加密字符串传给服务端
  10. 服务端同样生成MD5(R,SessionKey)加密字符串
  11. 如果客户端传来的加密字符串等于服务端自身生成的加密字符串,则认证成功
  12. 此时不用输入密码,即完成建连,可以开始远程执行shell命令了

实现免密登录

其他位置都是linux系统自动完成校验

  1. 在fish生成一对公钥和私钥 (generate, 生成),使用rsa算法

    ssh-keygen
    
  2. 将公钥发送给fishing服务器,必须给出fishing的密码fishing才接收公钥

    ssh-copy-id 192.168.66.128
    
  3. 发送登录请求,实现免密登录

演示过程:

总结

相信各位看官都对Linux系统的去开启免密登录极其原理有了一定了解,期待等待下一章的Linux中的高级命令中的对一些服务的管理命令的学习吧!

当然还有更多命令等着下次一起看吧!欢迎期待下一章的到来!

让我们也一起加油吧!本人不才,如有什么缺漏、错误的地方,也欢迎各位人才大佬评论中批评指正!当然如果这篇文章确定对你有点小小帮助的话,也请亲切可爱的人才大佬们给个点赞、收藏下吧,一键三连,非常感谢!

学到这里,今天的世界打烊了,晚安!虽然这篇文章完结了,但是我还在,永不完结。我会努力保持写文章。来日方长,何惧车遥马慢!

感谢各位看到这里!愿你韶华不负,青春无悔!