如何使用SSH登录树莓派
文章来源: http://raspberry.dns8844.cn/documentation
使用 SSH 访问远程终端
您可以使用 SSH 协议从同一网络上的另一台计算机远程访问 Raspberry Pi 的终端。
启用 SSH 服务器
默认情况下,Raspberry Pi OS 禁用 SSH 服务器。通过以下方式之一启用 SSH:
[tabs]
通过桌面::
. 从 Preferences 菜单启动 Raspberry Pi 配置。
. 导航至 Interfaces 选项卡。
. 选择 SSH 旁边的 Enabled。
. 单击 OK。
烧录新的 OS 镜像时::
要在全新安装的 Raspberry Pi OS 上配置 SSH:
. 按照 安装Imager 指南中的说明操作。
. 在 操作系统自定义 步骤中,导航至 服务 选项卡。
. 勾选 启用 SSH 复选框。
. 选择 密码验证,使用与实际使用 Raspberry Pi 时相同的用户名和密码登录。选择 Allow public-key authentication only 以 xref:remote-access.adoc#configure-ssh-without-a-password[配置 SSH 密钥] 进行无密码登录。
从终端使能SSH::
. 在终端窗口输入 sudo raspi-config
。
. 选择 Interfacing Options
。
. 导航至并选择 SSH
。
. 选择 Yes
。
. 选择 Ok
。
. 选择 `Finish``。
手动使能SSH::
. 在启动分区中创建一个名为 ssh
的空文件:
$ sudo touch /boot/firmware/ssh
. 重启机器:
$ sudo reboot
连接到 SSH 服务器
在您的计算机上打开一个终端窗口并输入以下命令,将 <ip address>
占位符替换为 您尝试连接的 Raspberry Pi 的 IP 地址,并将 <username>
替换为您的用户名:
$ ssh <username>@<ip address>
连接成功后,您将看到安全警告。输入 yes
继续。您只会在第一次连接时看到此警告。
出现提示时输入您的帐户密码。
您现在应该会看到 Raspberry Pi 命令提示符:
<username>@<hostname> ~ $
您现在已远程连接到 Raspberry Pi,并且可以执行命令。
NOTE: 如果您收到 connection timed out
错误,则可能是您输入了错误的 Raspberry Pi IP 地址。请查看 Raspberry Pi 的 IP 地址。
通过 SSH 转发 X11
NOTE: 在 Raspberry Pi 4 和 5 上,Raspberry Pi OS Bookworm 默认使用 Wayland 窗口服务器。如果您使用 X 窗口服务器,则只能转发 X11。要通过 X11 启用窗口转发,请在 Raspberry Pi 配置中将桌面切换到 X 窗口服务器。
NOTE: 许多桌面环境中不再默认安装 X11。安装第三方 X 服务器(例如 XQuartz)以使用 X11 转发。
X11 通过 SSH 启用图形应用程序。传递 -Y
标志以通过 SSH 转发 X 会话:
$ ssh -Y <username>@<ip address>
通过身份验证后,您将照常看到命令行。但是,您也可以打开 X 服务器可以为您呈现的图形窗口。例如,键入以下命令以启动 Geany 窗口:
$ geany &
配置无密码 SSH
要远程访问您的 Raspberry Pi 而无需每次连接时都提供密码,请使用 SSH 密钥对。
使用 Raspberry Pi Imager 预配置操作系统镜像
使用 Raspberry Pi Imager 配置启动映像时,您可以预配置 SSH 密钥。您可以生成新的 SSH 密钥对或现有的 SSH 密钥。
. 按照 使用 Imager 安装 指南配置您的启动映像。
. 在 OS Customisation 步骤中,导航到 Services 选项卡并勾选 启用 SSH 复选框。
. 选择 仅允许公钥身份验证 单选按钮。如果您已经在 ~/.ssh/id_rsa.pub
中存储了 SSH 公钥,Imager 会自动使用该公钥预填充文本框。如果 Imager 找不到 SSH 公钥,您可以单击 RUN SSH-KEYGEN 按钮来生成新的密钥对。
手动配置 SSH 密钥
如果您已经安装了 Raspberry Pi OS,则可以更新现有配置以使用 SSH 密钥身份验证。
检查是否存在现有的 SSH 公钥
要检查用于远程连接到 Raspberry Pi 的计算机上是否存在现有的 SSH 公钥,请运行以下命令:
$ ls ~/.ssh
如果你看到名为 id_ed25519.pub
、 id_rsa.pub
或 id_dsa.pub
的文件,说明你已经有了 SSH 密钥。跳过 SSH 密钥对生成,继续 将 SSH 密钥添加到 SSH Identity 列表中。
生成新的SSH密钥对
TIP: 本指南提供了生成新RSA密钥的说明。为了提高安全性,您可以改为生成 http://ed25519.cr.yp.to/[Ed25519] 密钥。当引用您的公钥和私钥文件名以使用Ed25519密钥时,将 -t ed25519
传递给 ssh-keygen
并将 rsa
替换为 ed25519
。
要生成新的SSH密钥对,请输入以下命令:
$ ssh-keygen
当询问在哪里保存密钥时,按 Enter 使用默认位置 ~/.ssh/id_rsa
。
当要求输入可选关键字时,按 Enter 以不使用关键字。
运行以下命令检查 .ssh
目录的内容:
$ ls ~/.ssh
您应该看到文件 id_rsa
和 id_rsa.pub
:
authorized_keys id_rsa id_rsa.pub known_hosts
id_rsa
文件包含您的私钥。在您用于远程连接到Raspberry Pi的计算机上确保其安全。
id_rsa.pub文件包含您的公钥。您将与您的Raspberry Pi共享此密钥。当您远程连接Raspberry Pi时,它将使用此密钥来验证您的身份。
将SSH密钥添加到SSH身份列表中
启动SSH代理:
$ eval "$(ssh-agent -s)"
接下来,使用以下命令将您的密钥身份添加到 ssh-agent
:
$ ssh-add ~/.ssh/id_rsa
将公钥复制到您的Raspberry Pi
在您用于远程连接到Raspberry Pi的计算机上,使用以下命令将您的公钥安全地复制到Raspberry Pi:
$ ssh-copy-id <username>@<ip address>
出现提示时,在Raspberry Pi上输入您的用户帐户的密码。
您现在无需输入密码即可连接到Raspberry Pi。
手动将公钥复制到您的Raspberry Pi
如果您的操作系统不支持 ssh-cop-id
,您可以使用 xref:remote-access.adoc#scp[scp
] 复制您的公钥: 。
首先,on您的RaspberryPi,创建Linux期望查找密钥的目录:
$ mkdir .ssh
然后,为 .ssh
目录配置适当的权限:
$ chmod 700 .ssh
在您通常的设备上,使用 scp
将您的公钥复制到Raspberry Pi上名为 .ssh/authorized_keys
的文件中:
$ scp .ssh/id_rsa.pub <username>@<ip address>:.ssh/authorized_keys
TIP: 上面的命令假定您以前从未授权任何密钥访问您的Raspberry Pi。如果您之前至少添加了一个密钥,您应该在 authorized_keys
文件的末尾添加一个包含公钥的新行,以保留您现有的密钥。
出现提示时,在Raspberry Pi上输入您的用户帐户的密码。
然后在树莓派上,配置 authorized_keys
文件的权限:
$ chmod 644 .ssh/authorized_keys
您现在无需输入密码即可连接到Raspberry Pi。
上一篇 – 树莓派超全系列教程文档–(50)如何查找树莓派的IP地址
下一篇 – 树莓派超全系列教程文档–(52)如何启用VNC功能