ssh 通过rsa密钥进行登录

浪子huang 2019-06-27

ssh登录服务器的方法大体上分为两种:

  1. 通过ssh使用用户名密码的方式登录
  2. 通过ssh使用密钥对进行登录

本文主要阐述如何使用密钥进行登录,以如如何管理多个密钥对。

生成密钥对

即然是密钥对,就说是两个密钥,我们把其中一个需要存在本地计算机的密钥称为私钥,把另一个存放到服务器的密钥称为公钥。
私钥:要保护好的,不能通过网络传输的。
公钥:可以公开的,可以通过任何途径传输的。

生成密钥对的方式有很多。
如果你使用的是mac os,那么可以通过以下命令创建:
ssh-keygen -t rsa
创建过程中,会提示你输出使用这个密钥的密码,我们一路回车,留空处理。
该命令可以在~/.ssh中生成两个文件:
id_rsa(私钥) 以及 id_rsa.pub(公钥)

将公钥应用到服务器

我们连接服务器,并将id_rsa.pub上传至服务器。
然后将id_rsa.pub的内容追加到~/.ssh/authorized_keys文件中

cat id_rsa.pub >> ~/.ssh/authorized_keys

并重启sshd服务

当我们再次登录的时候,发现已经不需要输入密码了。

多个服务器

如果你有多个服务器需要管理,在生成一次密钥对后,将公钥分别的追加到相应服务器用户的~/.ssh/authorized_keys中即可。

多台终端

如果我们在单位有一台电脑,在家还有一台电脑,都需要远程服务器呢
方法还是一样的:
在单位电脑上生成公钥,追加到authorized_keys中。
在自己电脑上再生成公钥,追加到authorized_keys中。



延伸阅读:
私钥:不能通过网络进行传输,也防止别人截获的密钥。
公钥:可以通过网络传输,别人可以随意截获的密钥。

在这简单提下对称加密与非对称加密的区别:
对称加密:加密与解密密码相同,所以我把加密密码(钥)告知你的同时,你也同时掌握了我的解密密码。
非对称加密:加密与解决密码不同,所以即使我把加密密钥告诉你,你用加密的密码也解不开我加密的内容。
有兴趣的同学,可以搜索一下RSA非对称加密。

除了RSA以外,我们平常用的sha1,md5也是非对称的,它们与rsa的区别是:rsa使用a密钥加密后,还可以使用b密钥解密。但sha1,md5加密后,不提供解密算法。

相关推荐