Skip to content

无密码 SSH 访问

可以将树莓派配置为允许从另一台计算机进行访问,而无需在每次连接时都提供密码。为此,您需要使用 SSH 密钥而不是密码。生成 SSH 密钥:

检查现有的 SSH 密钥

首先,检查用于连接树莓派的计算机上是否已经有密钥:

`` ls〜/.ssh


如果您看到名为" id_rsa.pub"或" id_dsa.pub"的文件,则说明您已经设置了密钥,因此可以跳过下面的"生成新的 SSH 密钥"步骤。

## 生成新的 SSH 密钥

要生成新的 SSH 密钥,请输入以下命令:

``
ssh-keygen

输入此命令后,将询问您将密钥保存在何处。我们建议通过按 Enter 键将其保存在默认位置(〜/.ssh/id_rsa)。

您还将被要求输入密码,密码是可选的。密码用于加密 SSH 私钥,因此,如果其他人复制了该密钥,他们将无法模拟您获得访问权限。如果您选择使用密码,请在此处输入密码并按 Enter 键,然后在出现提示时再次输入密码。将字段保留为空,不设置密码。

现在查看您的.ssh目录:

`` ls〜/.ssh


并且您应该看到文件`id_rsa`和`id_rsa.pub`:

authorized_keys id_rsa id_rsa.pubknown_hosts


id_rsa文件是您的私钥。将此保存在您的计算机上。

`id_rsa.pub`文件是您的公共密钥。这就是您与连接到的机器共享的内容:在本例中为树莓派。当您尝试连接的计算机与您的公钥和私钥匹配时,它将允许您进行连接。

查看您的公钥,看看它是什么样的:

``
猫〜/.ssh/id_rsa.pub

格式应为:

`` ssh-rsa <完全随机字符串> user @ host


<a name="copy-your-public-key-to-your-raspberry-pi"> </a>
## 将您的公钥复制到树莓派


使用您将要连接的计算机,通过 SSH 发送将公共密钥附加到树莓派上的`authorized_keys`文件中:

``
ssh-copy-id <用户名> @ <IP地址>

请注意,此步骤您需要使用密码进行身份验证。

另外,如果您的系统上没有ssh-copy-id,则可以通过 SSH 手动复制文件:

`` 猫〜/.ssh/id_rsa.pub | ssh <用户名> @ 'mkdir -p〜/.ssh && cat >>〜/.ssh/authorized_keys'


如果看到消息" ssh:连接到主机<IP-ADDRESS>端口 22 :连接被拒绝",并且知道 IP -ADDRESS是正确的,则可能是您的树莓派没有启用 SSH 。在 Pi 的终端窗口中运行`sudo raspi-config`,启用 SSH ,然后尝试再次复制文件。

现在尝试使用 ssh  <USER> @ <IP地址>,您应该在没有密码提示的情况下进行连接。

如果看到消息"代理允许使用密钥签名失败",则将您的 RSA 或 DSA 身份添加到身份验证代理" ssh-agent",然后执行以下命令:

``
SSH添加

如果这不起作用,则可以在树莓派论坛上获得帮助。

注意:您还可以使用 scp 命令(安全副本)通过 SSH 发送文件。有关更多信息,请参见SCP指南

将密码短语存储在 macOS 钥匙串中

如果您使用的是 macOS ,并且在确认您的新密钥可以连接后,可以选择将密钥的密码存储在 macOS 密钥链中。这使您无需输入密码即可连接到树莓派。

运行以下命令以将其存储在钥匙串中:

`` ssh-add -K〜/.ssh/id_rsa ```