rainyzz's blog

SSH公钥与私钥

执行ssh-keygen 命令后能够生成公钥私钥对,例如公钥 id_rsa.pub ,私钥 id.rsa

如果将公钥加入Github帐号或者其他服务器的authorized_keys文件中,就能实现无密码访问。

使用公钥和私钥其中一个加密的文件只有用另一个才能解密。

密钥主要有两种使用方式,一种是对数据加密,一种是实现身份认证

###数据加密

比如说我要给一个朋友发一些秘密文件,我希望这些秘密文件只有他才能解密。

  1. 他把他的公钥发给我。
  2. 我用他的公钥加密文件,这样文件只有他的私钥才能解密,私钥也只有他有,我就确保了文件不被别人看到。

###身份认证

比如我要登录一个服务器,这个服务器需要认证我的身份,比如我是管理员,服务器要确定我是管理员

  1. 我事先把公钥发给服务器,服务器确定这个公钥对应的用户就是我。
  2. 我用我的私钥加密一些文件,因为私钥只有我有,服务器用公钥解密出来信息,说明了发这个信息的就是我,然后给我对应的管理员权限,SSH用公私钥验证身份应该就是这个原理。