树莓派(5):使用RSA密钥对登录SSH

在此前的介绍中,我们登录SSH是采用密码的方式。事实上除此之外,SSH还能用RSA密钥来登录。这种方式更简便,也更安全。

有关RSA这种非对称加密的算法,详细了解可参考wiki。在SSH登录中,服务器(也就是我们的树莓派)持有公钥,而客户端(即用以控制的电脑)持有私钥。我们只需要造一对RSA密钥,并放入指定的位置。

这篇文章默认使用root账户登录。如果你没有这样做,当提示权限不足时,请在命令前加sudo。有关root账户的获得,请参考上一篇文章

生成密钥对

在安装了OpenSSH的Windows电脑上,在cmd中输入命令

ssh-keygen -t rsa

创建RSA密钥。此时会询问密钥的存放位置:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/Bear Dic/.ssh/id_rsa):

直接回车,使用默认(也就是系统盘用户 目录下的.ssh文件夹)即可。

接下来会提示输入一个口令来保护密钥:

Enter passphrase (empty for no passphrase):

设置口令后,将来使用密钥登录时需要输入。考虑到方便性,常常不设置密钥,直接回车跳过。

然后RSA密钥就创建好了。在默认情况下,生成的密钥对在ssh的文件夹下,因而客户端可以直接使用。我们只需要配置服务器。在这里,id_rsa文件是私钥,id_rsa.pub文件是公钥。

拷贝到服务器

拷贝到服务器有两种方式。一种是用SSH,一种用SFTP。

SSH方法

首先在本地,将id_rsa.pub文件全部复制到剪贴板。然后SSH连接到树莓派,键入

cd /root/.ssh/

如果提示不存在这个目录,那么先创建之:

mkdir /root/.ssh/ && cd /root/.ssh/

然后使用ls命令查看当前目录是否存在名叫authorized_keys的文件。如果不存在,则创建:

touch authorized_keys

这文件的权限只能是600,因而改变它的权限:

chmod 600 authorized_keys

随后编辑它:

vim authorized_keys

按下i键进入插入模式。然后粘贴我们刚刚复制的公钥。Windows10的命令行在经过设置后可以使用Ctrl+V,或者(在打开了快速编辑模式时)按一下鼠标右键。若无法这样做,可以点击cmd窗口的左上角,移动到编辑,选择粘贴。

然后按下esc键,再键入:wq后保存并退出。

SFTP方法

使用FlashFXP,操作就和在系统中差别不大。同样先在本地将id_rsa.pub文件全部复制到剪贴板。FlashFXP窗口中,在root目录下找到或右键-创建文件夹.ssh,然后找到或右键-创建文件authorized_keys。右键-编辑,粘贴之,然后Ctrl+S保存后关闭。

右键authorized_keys文件,点击属性(CHMOD),更改文本框中数值为600,点击确定以保存设置。

 

此后,RSA密钥对登录就配置完成了。以后登录SSH时,将不再提示输入密码了。

订阅
提醒我
guest
0 评论
Inline Feedbacks
查看所有评论
0
Would love your thoughts, please comment.x