SSH 免密登录是怎么玩儿的?

SSH 免密登录是怎么玩儿的?

作为一名后端开发,经常会遇到SSH登录,Git提交等事务,而当你有很多服务器的时候使用密码可能不是一个好的选择了,
就像我要登录自己的服务器、公司各个环境的服务器,虽然有工具可以帮我们做这些,但我习惯在命令行下操作。
下面我带你了解一下免密登录的原理和如何实现。

基本概念

SSH协议

SSH 是一种计算机之间加密登录的协议,它相对于telnet和rsh的明文传输,
提供了加密、校验和压缩,使得我们可以很安全的远程操作,
而不用担心信息泄露(当然不是绝对的,加密总有可能被破解,只是比起明文来说那是强了不少)。

加密

加密的意思是将一段数据经过处理之后,输出为一段外人无法或者很难破译的数据,除了指定的人可以解密之外。
一般来说,加密的输入还会有一个key,这个key作为加密的参数,而在解密的时候也会用一个相关联(有可能是相同)的key作为输入。
粗略来说是下面的流程:

# 加密方
encrypted_data = encrypt(raw_data, key)