科学上网指南(5)——公钥/私钥登录steemCreated with Sketch.

in cn •  7 years ago 

最近非常时期,据说ss/ssr都死了一片。


不去管它,继续教程。
上一篇说到修改root密码,停止root远程登录的问题。但是,后果是需要输入常常的密码。

如果增加公钥/私钥认证,则可以大大加快登录的过程。
简单说一下公钥/私钥的问题。公钥/私钥是两个很大的素数对,彼此之间有一定的计算关系,可以相互加密和解密信息,但是仅仅依靠公钥无法很快地计算出私钥来。

按照字面意思,公钥是我们可以发布出去给别人保存的。当有人要给我们信息的时候,就用我们的公钥加密,发给我们。于是我们用私钥来解密,得到信息。在中途,所有没有私钥的人都无法读取信息。

在身份认证上,你可以创建一对公钥/私钥,把公钥留在服务器上,私钥自己保存,绝不示人。

任何拿到你公钥的服务器,唯一能做的就是认证你是本尊,然后让你登录上去。

技术细节不讨论了,简单地说,你可以在putty上生成一对密钥,然后把公钥上传服务器,也可以在服务器上生成一对密钥,然后将私钥下载到本地,将服务器上的私钥删除!

为了简便起见,我们不讨论文件上传或者下载的机制——SFTP,而采用Putty生成密钥对,直接编辑服务器上的公钥文件的方式来进行。


打开putty的目录,运行里面的puttygen.exe:

putty_gen.png

点击Generate
new_key.png

然后把鼠标放在屏幕上随机移动,增加密码的随机性指标——熵。

new_key_gen.png

然后,点击 save private key,系统会提示你是否需要一个密码保护。我通常会设定一个简单的密码,略微保护一下私钥。但是无论如何,一个人是必须记忆一个很长的主密钥的,比如lastpass的主密钥。

把私钥存在一个文件里。拷贝屏幕上以ssh-rsa开头的一整段文字,接下来我们要把它放到vps服务器上。


  1. 用你的非root用户名和密码登录到vps服务器上。
  2. 建立一个叫做.ssh的目录:
    mkdir .ssh
  3. 进入.ssh 目录:
    cd .ssh/
  4. 把刚才拷贝的一段文字导入系统中。先输入 echo,然后右键点击屏幕粘贴文字,然后输入 >> authorized_keys:

echo ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAqsXJJCgypQW/kYg2FAHkiAUyEnCdlPRwE5qSjtTgnJEeaiqLOuzX9kCFHZxWc/IAISOtw1lfBIzj+PC2k3pLJuEyARhRyU3hNHH0EpPD1yqHb73EoFFZfF9srisIquvUylcJS+yhwHXDlvCdNV4UEdinb+UZy9OLvNyxohhkJ7R+d2eFSrkub2KNvXF2ev9AboMG84rEkj43n6rvwGp5/NOqUDqkuWJDDOIIIiuzMXF0Pqft1pKZz2WzhEe+umw0MON4ZE3oTZjYLNoc5xYtLXhD+VGWBsfSM9QkxfGOD3uNW23Ke754xCMnBodhgAnLOHbLgk6vOxDcZtDrjEtDWw== rsa-key-20180312 >> authorized_keys

  1. 现在可以测试用私钥登录了:
    另开一个putty窗口,同样的ip,但是在connection/SSH/Auth下选择你保存的私钥文件:
    putty-key.png

如果一切正常,服务器ip没敲错,你就可以安全地登录到vps而不用输入漫长的密码了。


经过这样的过程,下一次我们就可以讨论如何配置ss服务器了。

科学上网指南(1)——如何购买主机
科学上网指南(2)——ssh
科学上网指南(3)——密码管理
科学上网指南(4)——root 账号管理

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!