最近非常时期,据说ss/ssr都死了一片。我在steemit上写科学上网指南,但是仍然觉得有必要发到我的博客里。我的朋友们需要简单的技术指导。
这些文章不是权威性的,只是我个人的经验而已。


不去管它,继续教程。
上一篇说到修改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 账号管理