前面内容中有用到SSH通过账号密码登录树莓派(远程服务器),其实,有一个更好的办法来保证安全,而且让你可以放心地用 root 账户从远程登录——那就是通过密钥方式登录。
密钥形式登录的原理是:利用密钥生成器制作一对密钥——一只公钥和一只私钥。将公钥添加到服务器的某个账户上,然后在客户端利用私钥即可完成认证并登录。这样一来,没有私钥,任何人都无法通过 SSH 暴力破解你的密码来远程登录到系统。此外,如果将公钥复制到其他账户甚至主机,利用私钥也可以登录。
一、创建密钥对
1、使用账号和密码登录需要设置的远程服务器,进入用户目录下的.ssh目录下,使用
cd /root/.ssh
如果出现以下提示,没有找到相应文件,原因是因为没有用root用户ssh登录过,执行一下ssh操作就会自动生成了
2、使用命令,然后根据提示依次输入yes,以及服务器启动密码
ssh localhost
3、重新执行cd /root/.ssh命令,出现下面现象,说明执行成功
4、查看目录,没有没有进行过ssh密钥创建如下图所示:
5、执行ssh-keygen命令创建密钥对
ssh-keygen -t rsa -b 4096
执行密钥生成命令,基本上是一路回车既可以了,但是需要注意的是:执行命令的过程中是会提示呢输入密钥的密码的(如下图中红色箭头处,输入两次相同的,即是又一次确认密码),不需要密码直接回车就行。
6、密钥生成后会在当前目录下多出两个文件,id_rsa和id_rsa.pub,其中id_rsa是私钥(敲黑板:这个很重要,不能外泄),id_rsa.pub这个是公钥
二、将公钥信息写入到私钥登录时的校验文件
1、把公钥拷贝到需要登录的远程服务器或Linux系统上,这里可以使用ssh-copy-id自动完成
ssh-copy-id -i /root/.ssh/id_rsa.pub root@149.28.224.140
注意,后面的IP地址是你自己服务器的地址。执行命令了会要求输入远程机器的密码,输入密码即可。
执行完成,会发现Number of key(s) added:1,查看目录发现一个文件:authorized_keys,说明公钥添加成功
三、将私钥下载到本地主机
刚才服务器生成的id_rsa私钥文件,我们要下载到本地主机上,我们使用的是sz命令,但是注意SSH远程登录程序putty有个弊端,就是用不了rz、sz(rz、sz命令用法可自行搜索查找)命令上传下载文件,很不方便。因为putty提供了相关工具上传和下载文件,所以我们使用的是Xshell(具体Xshell使用可自行查找)。
1、使用以下命令,将私钥下载到本地
sz id_rsa
出现以下现象,说明sz、rz命令没有安装,需要安装后才能使用。
2、安装sz、rz命令
apt install lrzsz
3、下载密钥,再次执行下载命令,会弹出本地文件,选择要保存的文件地址确认即可(注意文件夹名称不能有中文字符)
sz id_rsa
4、执行成功后,打开本地文件夹,会看到密钥文件
四、使用密钥登录服务器
1、选择配置好的服务器,点击连接
2、输入账号名
3、选择密钥方式登录,找到本地密钥文件,点击确认即可登录服务器
4、大功告成