无密码 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 <用户名> @
如果看到消息" 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 ```