最近非常时期,据说ss/ssr都死了一片。
不去管它,继续教程。
上一篇说到修改root密码,停止root远程登录的问题。但是,后果是需要输入常常的密码。
如果增加公钥/私钥认证,则可以大大加快登录的过程。
简单说一下公钥/私钥的问题。公钥/私钥是两个很大的素数对,彼此之间有一定的计算关系,可以相互加密和解密信息,但是仅仅依靠公钥无法很快地计算出私钥来。
按照字面意思,公钥是我们可以发布出去给别人保存的。当有人要给我们信息的时候,就用我们的公钥加密,发给我们。于是我们用私钥来解密,得到信息。在中途,所有没有私钥的人都无法读取信息。
在身份认证上,你可以创建一对公钥/私钥,把公钥留在服务器上,私钥自己保存,绝不示人。
任何拿到你公钥的服务器,唯一能做的就是认证你是本尊,然后让你登录上去。
技术细节不讨论了,简单地说,你可以在putty上生成一对密钥,然后把公钥上传服务器,也可以在服务器上生成一对密钥,然后将私钥下载到本地,将服务器上的私钥删除!
为了简便起见,我们不讨论文件上传或者下载的机制——SFTP,而采用Putty生成密钥对,直接编辑服务器上的公钥文件的方式来进行。
打开putty的目录,运行里面的puttygen.exe:
点击Generate
然后把鼠标放在屏幕上随机移动,增加密码的随机性指标——熵。
然后,点击 save private key
,系统会提示你是否需要一个密码保护。我通常会设定一个简单的密码,略微保护一下私钥。但是无论如何,一个人是必须记忆一个很长的主密钥的,比如lastpass的主密钥。
把私钥存在一个文件里。拷贝屏幕上以ssh-rsa
开头的一整段文字,接下来我们要把它放到vps服务器上。
- 用你的非root用户名和密码登录到vps服务器上。
- 建立一个叫做.ssh的目录:
mkdir .ssh
- 进入.ssh 目录:
cd .ssh/
- 把刚才拷贝的一段文字导入系统中。先输入
echo
,然后右键点击屏幕粘贴文字,然后输入>> authorized_keys
:
echo ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAqsXJJCgypQW/kYg2FAHkiAUyEnCdlPRwE5qSjtTgnJEeaiqLOuzX9kCFHZxWc/IAISOtw1lfBIzj+PC2k3pLJuEyARhRyU3hNHH0EpPD1yqHb73EoFFZfF9srisIquvUylcJS+yhwHXDlvCdNV4UEdinb+UZy9OLvNyxohhkJ7R+d2eFSrkub2KNvXF2ev9AboMG84rEkj43n6rvwGp5/NOqUDqkuWJDDOIIIiuzMXF0Pqft1pKZz2WzhEe+umw0MON4ZE3oTZjYLNoc5xYtLXhD+VGWBsfSM9QkxfGOD3uNW23Ke754xCMnBodhgAnLOHbLgk6vOxDcZtDrjEtDWw== rsa-key-20180312 >> authorized_keys
- 现在可以测试用私钥登录了:
另开一个putty窗口,同样的ip,但是在connection/SSH/Auth下选择你保存的私钥文件:
如果一切正常,服务器ip没敲错,你就可以安全地登录到vps而不用输入漫长的密码了。
经过这样的过程,下一次我们就可以讨论如何配置ss服务器了。
科学上网指南(1)——如何购买主机
科学上网指南(2)——ssh
科学上网指南(3)——密码管理
科学上网指南(4)——root 账号管理