SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
之前我们在使用云服务器的时候,是需要使用用户名和密码登录的,然而这种方式是不安全的,如果有别有用心之人想要破解你的密码,可以使用暴力破解的方法进行破解。虽然说现在很多服务器提供商都提供了很多方法来避免暴力破解的方法,但是还是需慎之又慎,下面本文介绍一种更为安全的登录方法——通过SSH密钥登录。
SSH密钥准备
要使用SSH密钥登录,首先就需要有一个SSH Key
,当然,在前面的Hexo教程中,我也提及了怎么生成自己的SSH Key
,但是毕竟在前文中并没有说明那个命令的具体含义,因此在此处也说明一下。
如果不确定自己有没有SSH Key,可以打开C:\用户\<用户名>
下查看是否有一个.ssh
的文件夹,里面应该至少有一个id_rsa
和id_rsa.pub
两个文件。如果有的话,那就Congratulations!你可以跳过这一步。
首先打开终端,无论是Git Bash
、CMD
、Powershell
还是最新的Windows Terminal
都是可以的,在里面输入
1 | $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" |
此处的"your_email@example.com"
最好为你Github注册所使用的邮箱,之后使用Github也可以非常的方便。
然后下面的选项就一路按Enter
就行。
之后在C:\用户\<用户名>
下找到.ssh
的文件夹,可以看到其中的id_rsa
和id_rsa.pub
两个文件,这就说明你成功了!
需要注意的是,这两个密钥非常重要!非常重要!非常重要!,切记不要把这两个文件发布到网上,不然别人可能会通过你的密钥获取到你电脑的控制。
本地添加SSH配置
要知道的是,就算我们通过SSH密钥登录,当然还是需要通过服务器的公网IP连接,总不会有人真的把自己服务器的公网IP记下来了吧?不会吧不会吧不会吧?当然最好还是通过一个好记的别名进行登录,那么你就需要在本地修改SSH的配置,在C:\用户\<用户名>\.ssh
的文件夹下创建一个config
的文件,填入一下内容
1 | #common |
Github
下的内容根据个人需求加入,其他部分都需要加入,Aliyun
下的部分,Host
后面的<Identifier>
为你想要的标识名,HostName
后面的<Public IP>
为你服务器的公网IP,User
后面的<User>
为服务器登录的用户,一般来说为root
。
远程服务器配置
我们需要配置好远程服务器,需要把本地的ssh生成的公钥上传到服务器上,使用如下指令:
1 | $ scp C:\Users\<User>\.ssh\id_rsa.pub root@<Identifier>:~ |
将本地的.ssh
文件夹直接上传到服务器上,然后我们需要登录到服务器上,输入以下指令来查看是否存在authorized_keys
。
1 | $ vim ~/.ssh/authorized_keys |
如果没有的话,vim会为你自动创建一个authorized_keys
的文件,然后输入:wq
保存文件并退出。
继续输入如下代码,将公钥复制到authoried_keys
中
1 | $ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys |
此时就可以通过ssh root@<Identifier>
访问服务器了!