SSH远程访问
有时您需要在不连接显示器的情况下访问树莓派。也许树莓派嵌入到了其他设备的内部,例如机器人,或者你可能身处其他地方想查看树莓派的一些信息。或者你根本没有备用显示器!
你可以从另一台机器连接到你的树莓派。但为了做到这一点,你需要知道它的IP地址。
任何连接到局域网的设备都会被分配一个IP地址。为了使用SSH或VNC从另一台机器连接到树莓派,您需要知道派的IP地址。如果您连接了显示器,并且有许多方法可以从网络上的另一台机器远程查找显示器,那么这很容易。
查找设备IP地址的方法
通过路由器设备列表
在web浏览器中输入路由器的IP地址,例如。http://192.168.1.1,通常打印在路由器上的标签上;这将带您进入控制面板。然后使用您的凭证登录,凭证通常也会打印在路由器上或在随附的文件中发送给您。浏览已连接设备或类似设备的列表(所有路由器都不同),您应该会看到一些识别的设备。一些设备被检测为PC、平板电脑、手机、打印机等,所以你应该可以认出一些并排除它们,以确定哪一个是您的树莓派。还要注意连接类型;如果你的树莓派是通过有线连接的,那么可以选择的设备应该更少。
通过mDNS解析raspberrypi.local
在Raspberry Pi OS上,Avahi服务现成支持多播DNS。
如果您的设备支持mDNS,您可以使用树莓Pi的主机名和.local
后缀来访问它。
新安装的Raspberry Pi OS系统上的默认主机名是raspberrypi
,因此默认情况下,运行Raspbery Pi OS的任何树莓派都会对如下命令响应:
ping raspberrypi.local
如果树莓派可以访问,ping指令将会显示其IP地址:
PING raspberrypi.local (192.168.1.131): 56 data bytes
64 bytes from 192.168.1.131: icmp_seq=0 ttl=255 time=2.618 ms
如果您更改了树莓派的系统主机名(例如,通过编辑/etc/hostname
),Avahi服务也会更改.local
mDNS地址。
如果您不记得Raspberry Pi的主机名,但系统安装了Avahi服务,则可以使用avahi-browse命令浏览局域网中的所有主机和服务。
nmap命令
nmap
命令(Network Mapper)是一个用于网络发现的免费开源工具,可用于Linux、macOS和Windows。
要使用nmap
扫描网络上的设备,您需要知道连接到的子网。首先找到您自己的IP地址,换言之,就是您用来查找树莓派设备IP地址的计算机:
- 在Linux上,在终端窗口中输入
hostname -I
- 在macOS上,转到
System Preferences
,然后转到Network
,然后选择您的活动网络连接以查看IP地址
- 在Windows上,转到
控制面板
,然后在网络和共享中心
下,单击查看网络连接
,选择活动的网络连接,然后单击查看此连接的状态
以查看IP地址
现在您知道计算机的IP地址,您将扫描整个子网中的其他设备。例如,如果您的计算机IP地址是192.168.1.5
,其他设备将位于192.168.1.2
、192.168.1.3
、192.188.1.4
等地址。此子网范围的符号为192.168.1.0/24
(这包括192.168.1.0
到192.168.1.255
)。
现在在整个子网范围内使用带有-sn标志(ping扫描)的nmap命令。这可能需要几秒钟的时间:
nmap -sn 192.168.1.0/24
Ping扫描只是对所有IP地址进行Ping扫描,以查看它们是否响应。对于响应ping的每个设备,输出显示主机名和IP地址,如下所示:
Starting Nmap 6.40 ( http://nmap.org ) at 2014-03-10 12:46 GMT
Nmap scan report for hpprinter (192.168.1.2)
Host is up (0.00044s latency).
Nmap scan report for Gordons-MBP (192.168.1.4)
Host is up (0.0010s latency).
Nmap scan report for ubuntu (192.168.1.5)
Host is up (0.0010s latency).
Nmap scan report for raspberrypi (192.168.1.8)
Host is up (0.0030s latency).
Nmap done: 256 IP addresses (4 hosts up) scanned in 2.41 seconds
在这里,您可以看到主机名为raspberrypi的设备的IP地址为192.168.1.8。注意,要查看主机名,您必须以root身份运行nmap,方法是在命令前面加上sudo。
通过智能手机获取树莓派IP地址
Fing应用程序是一款免费的智能手机网络扫描仪。它适用于Android和iOS。
你的手机和树莓派必须在同一个网络上,所以请将手机连接到正确的无线网络。
打开Fing应用程序时,触摸屏幕右上角的刷新按钮。几秒钟后,您将获得一个列表,其中包含所有连接到网络的设备。向下滚动到制造商“树莓派”的条目。您将在条目的左下角看到IP地址,在条目的右下角看到MAC地址。
设置SSH服务器
您可以使用Secure Shell(SSH)协议从同一网络上的另一台计算机或设备远程访问树莓派。
您只能访问命令行,而不能访问整个桌面环境。有关完整的远程桌面,请参阅VNC。
设置本地网络
确保您的树莓派已正确设置和连接。如果您要使用无线网络,可以通过桌面用户界面或从命令行启用。如果您不使用无线连接,请将树莓派直接插入路由器。
注 您需要记下树莓派的IP地址,以便稍后连接到它。使用ifconfig
命令将显示有关当前网络状态的信息,包括IP地址,也可以使用hostname -I
显示与设备关联的IP地址。
使能SSH服务
Raspberry Pi OS默认禁用SSH服务器。可以从桌面手动启用:
1.从Preferences菜单启动Raspberry Pi Configuration
2.导航到Interfaces
选项卡
3.选择SSH
旁边的Enabled
4.单击OK
或者,您可以通过raspi-config应用程序从终端启用SSH服务,
1.在终端窗口输入sudo raspi-config
2.选中Interfacing Options
3.定位到SSH
并选中
4.选择Yes
5.选中Ok
6.选择Finish
注 对于headless方式安装,可以通过在SD卡的引导分区上放置一个名为ssh
的文件(没有任何扩展名)来启用SSH。当树莓派启动时,它会查找ssh
文件。如果找到该文件,将启用SSH并删除该文件。该文件内容无关紧要;它可以包含文本,也可以什么都不包含。
警告 在可能连接到以太网的树莓派上启用SSH服务时,您应该更改默认密码以确保其保持安全。
从Linux或Mac OS系统SSH
您可以使用SSH从Linux桌面、另一个树莓派或Apple Mac连接到树莓派,而无需安装其他软件。
在计算机上打开一个终端窗口,将<IP>替换为您尝试连接的树莓派的IP地址,
ssh pi@<IP>
当连接确定时,您将看到安全/真实性警告。键入yes继续。只有在进行第一次连接时才会看到此警告。
注 如果您收到一个连接超时错误,很可能是您为复盆子Pi输入了错误的IP地址。
警告 如果您的Pi获取了您的计算机之前连接的设备的IP地址(即使该设备在另一个网络上),您可能会收到警告,并被要求从已知设备列表中清除该记录。遵循此说明并再次尝试ssh命令应该会成功。
接下来,系统将提示您输入pi
用户登录的密码,Raspberry Pi OS系统的默认密码是raspberry
。
出于安全原因,强烈建议更改复树莓派上的默认密码(此外,如果密码为空,也不能通过ssh登录)。现在您应该能够看到树莓派提示符,它将与树莓派本地系统上的提示符相同。
如果你在树莓派上设置了另一个用户,你可以用同样的方式连接它,用你自己的用户名替换如下的用户名,例如eben@192.168.1.5
pi@raspberrypi ~ $
您现在远程连接到树莓派,可以执行命令。
从Windows 10系统SSH
对于进行了2018年10月或之后更新的Windows 10系统计算机,可以直接使用SSH连接到树莓派,而无需使用第三方客户端。
在计算机上打开一个终端窗口,将<IP>替换为您尝试连接的树莓派的IP地址,
ssh pi@<IP>
当连接工作时,您将看到安全/真实性警告。键入yes继续。只有在第一次连接时才会看到此警告。