我家里有Raspberry Pi B型,但没有屏幕。我的计划是将其连接到以太网,然后通过ssh进入。但这意味着必须首先准备带有操作系统(Debian Squeeze)的SD卡。我看到两种方法:


使用操作系统准备SD,以便RPi始终以固定IP地址连接到以太网并启用SSH服务器。
准备SD通过操作系统,使RPi连接到网络,启用SSH服务器,然后广播其IP地址,以便我可以SSH到它。

以下哪种方法更容易?我该怎么做?还有其他方法吗?

我有以下工具:Ubuntu 10.4,MacOS 10.5,Windows 7,但只有Ubuntu具有读卡器。不幸的是,我无法访问路由器的DHCP表,它已完全关闭。

评论

除了有用之外-RasPi在启用SSH的情况下不会自然启动(至少是Debian)。您需要修改/ boot /中名称为SSH的文件才能启动。我知道这无法回答您的问题,但这可能是下一个绊脚石:)

我认为这不值得回答,但是您可以尝试使用端口扫描工具。

@iampearce:在debian wheezy beta中,ssh现在似乎已默认启用。

默认情况下,当前的Wheezy已启用SSH。如果您的网络中有DHCP服务器,它将直接使用。

我猜已经有您需要的所有答案了。我只想添加在网络中搜索Pi的方式。通常,我有不止一台,甚至更多的22号端口处于打开状态的计算机。 nmap -sP 192.168.0.0/24 | grep Pi -B 2

#1 楼

要在启动时启用ssh,请在SD映像的启动分区上备份boot.rc,然后将其替换为boot_enable_ssh.rc。 Pi的MAC地址的IP地址。

评论


基金会提供的Debian Squeeze映像上是否已安装ssh?

–直到B
2012年6月13日上午11:37

@TillB,它已安装在提供的映像中,但必须手动启动。

– Finnw
2012年6月13日在16:29

好的,哪个是启动分区?我有一个包含文件系统的文件,一个交换分区和一个包含start.elf文件的文件以及其他文件。也有boot_enable_ssh.rc,但没有boot.rc。我将其重命名为boot.rc并启动了。我在网络中找到了RPi(至少我假设它是Pi),但是ssh已关闭。

–直到B
2012年6月14日在17:12

您确定是这样吗?我的工作原理是重命名为boot.rc,如raspberrypi.stackexchange.com/questions/606/…中所示。

–大卫·赛克斯(David Sykes)
2012年6月23日在10:24

我在新的无头Raspberry Pi上启动了2012-09-18-wheezy-raspbian.img映像,该映像自动启动sshd并使用DHCP进行了自我配置。

–不
2012年9月29日13:51

#2 楼


将Raspberry Pi的boot_enable_ssh.rc(SD卡)中的boot.rc/boot复制到rootfs

仍在Raspberry Pi的rootfs中,编辑/etc/network/interfaces以分配固定的IP地址(因此没有DHCP服务器是必需的)。例如,

auto lo eth0
iface lo inet loopback
iface eth0 inet static
    address 192.168.0.202
    netmask 255.255.255.0
    gateway 192.168.0.200



启动Raspberry Pi,使用以太网电缆将其连接到PC连接到的同一网络(或连接它)。直接到您的PC)并通过SSH登录:

ssh pi@192.168.0.202



在您的Raspberry Pi中安装轻型VNC服务器:


然后启动VNC服务器(将要求您设置密码):

sudo apt-get install tightvncserver



在PC上安装VNC客户端:

vncserver :1 -name RasPi -depth 16 -geometry 1024x768



,然后从PC通过VNC通过RNC连接到Raspberry Pi:

apt-get install xtightvncviewer



就这样在这里工作:)

评论


FWIW:OP询问了ssh,而不是X或VNC。

–布拉德
14年3月14日在17:32

我已使用BUILDROOT下的raspberrypi_defconfig配置将操作系统安装在pi上...引导文件夹中没有boot.rc文件!我能做什么 ?

–野兽
16年1月24日在13:08

#3 楼

当前的Raspian版本中不存在boot_enable_ssh.rc的任何内容。引导时,漂亮的图形菜单会为您提供一些选项(包括SSHD是否应在引导时加载),然后将您转储到命令行。如果您是图形用户,那很好。 >如果不是,您将留在必须以某种方式外部运行update-rc.d的位置。所有这些实际上所做的就是在/etc/init.d/...文件系统中的各个点创建指向/etc/rc{0..6}.d/...脚本的符号链接。困惑?没关系-损坏很简单。


我假设您是通过Linux计算机执行此操作的。至少使用bash或兼容。如果没有Cygwin(或其他),我的建议将无法在Windows中运行。将SD卡和cd装入其中。


运行:
for i in 2 3 4 5; do sudo ln -s /etc/init.d/ssh etc/rc$i.d/S02ssh; done



卸载并引导。您应该可以通过SSH访问它。


如果您在网络上找不到它...
为您提供三种选择:


使用路由器的管理员进行查找。 Netgear特别擅长显示“连接的设备”。


插入显示器并运行ifconfig(作弊!)


在另一个设备上使用nmap计算机对其进行扫描。您应该知道它大致具有(到/ 24)的IP,所以扫描很简单:
 sudo nmap -sV --open 192.168.0.0/24  -p22




评论


不要为此使用nmap,您可以ping广播地址并检查ARP表。

–塔玛拉·维斯曼(Tamara Wijsman)
2012年11月29日23:22



@TomWijsman您是说运行ping -b 192.168.0还是等效命令?我不确定这是否可行,因为我刚刚在两台路由器上对此进行了测试,但没有成功。似乎通常被阻止。

–奥利
2012年11月30日在0:04



@Oli:不,是您的内核没有收集所有ARP答复,检查每个进入的数据包以查看其MAC是否已在ARP缓存中被认为是一种浪费,这就是为什么仅在Linux上并不总是如此我知道如何配置它;但这例如在Windows和Mac OS X上可以正常使用...

–塔玛拉·维斯曼(Tamara Wijsman)
2012年11月30日0:25



@Oli:如果您的系统无法做到这一点,一个可行的替代方案就是arp;它可以执行单独的ping和arp命令所要执行的操作,但不会使网络充满ICMP数据包。

–塔玛拉·维斯曼(Tamara Wijsman)
2012年11月30日0:28



@nornagon:arp -a不会自己执行此操作。

–塔玛拉·维斯曼(Tamara Wijsman)
2012年11月30日6:44



#4 楼

如果使用Arch Linux发行版,则只需将其插入并等待它从DHCP服务器获取其地址即可。然后,您可以检查DHCP的状态(例如,通过连接到路由器),并从已连接的客户端列表中检索IP地址。如果失败,则可以使用nmap或类似工具扫描整个子网的开放端口22(默认情况下启用SSH)。

评论


哦,忘了补充:我无法访问路由器(路由器由我公司提供并完全关闭)。您是说在Arch上始终启用ssh吗? Debian呢?

–直到B
2012年6月12日20:55

我认为只有Arch才预启用SSHd。

–user13
2012年6月12日20:56

默认情况下,Debian没有启用SSH。

–史蒂夫·罗比拉德(Steve Robillard)
2012年6月12日在21:29

到目前为止,我在Pi上安装的每个发行版都默认启用了SSH。并非总是这样,但对我而言一直如此。

–戴夫·约翰斯顿(DaveJohnston)
2012年6月27日12:52

#5 楼

由于物联网设备很容易用默认密码被黑客入侵,在2016年发生了大规模的僵尸网络攻击之后,Raspbian再次默认情况下关闭了SSH(源)。

修复非常容易,您只需要在boot分区(不是根文件系统内的目录)中创建一个名为ssh的文件。要检查您是否在正确的分区中,它应该有一个名为start.elf的文件。

别忘了以后更改密码!

要在我的网络上找到我的Pi,我使用了sudo arp-scan -l,尽管sudo nmap -sS --open -O 192.168.1.0/24也是一个有效但速度较慢的选项。 br />

评论


您提到的创建一个名为“ start.elf”的文件的帖子,而提到的创建一个名为“ SSH”的文件的源URL请参见:'如果要启用SSH,您所需要做的就是在其中放置一个名为ssh的文件。 / boot /目录。”您可以查看帖子吗?

– BastianW
17年2月5日在15:03

糟糕,我在写答案时有点草率,感谢您找出混淆点

–拉斐尔
17年2月5日在16:23

#6 楼

使用Debian 7(Wheezy)Beta映像,默认情况下已安装并启用SSH。您只需要通过其IP地址连接到它即可。

有几种方法可以确定Raspberry Pi所使用的IP地址,而不必直接在其上运行ifconfig,例如:


您的路由器配置页面上可能会显示一个屏幕,显示所连接机器的IP地址。
大多数智能手机都配有免费的Wi-Fi网络扫描仪,可显示连接到网络的设备。


评论


默认情况下,我的Debian Wheezy图像上未启用它... :(

–马特
2012年10月31日14:03

@马特:确定吗? -我打开时下载的标准版本。

–乔恩·埃格顿(Jon Egerton)
2012年10月31日14:17

我认同。我今天早上才再次尝试过(带有最新图像)。也许我错过了一些事情,但我记得现在已经做过几次了。

–马特
2012年10月31日14:27

似乎在2017年不适用

–拉斐尔
17年2月3日,下午3:18

#7 楼

简单的方法(如果只有键盘)

默认情况下,Debian Wheezy(Raspbian)中未启用SSH。曾几何时,我的Raspbian映像上绝对未启用SSH。显然,现在默认情况下已启用SSH。但是,如果不是这样,并且您被卡住了,请继续阅读:

如果您有USB键盘,启用它非常简单,比我在这里看到的大多数答案都简单得多:


插入键盘并启动RPi。请注意,默认键盘布局将是标准的QWERTY US布局,因此请注意您的“ Y”和“ Z”以及“-”和“ /”。
请稍等,然后键入“ pi “,按Enter键,然后按“ raspberry”,然后按Enter键。

使用以下命令启用SSH:以防万一,因为它是一个sudo命令,然后按Enter。 Mitropolskiy提到,配置实用程序使此时可以轻松配置SSH:

sudo /etc/init.d/ssh start


只需转到“ ssh”选项。幸运的是,这在SSH会话中有效,因此,您唯一需要“盲目”运行的命令就是上面的第一个命令。

评论


很棒的答案,但是看起来可能在Pi随附的最新SD卡上启用了ssh。上周订购了我的产品,而ssh刚刚解决了问题!

–河豚
2012年11月9日14:46



他们现在附带SD卡了吗?您在哪里订购的?不过,那是个好消息。我当时正在考虑升级到B模式。

–马特
2012年11月9日15:06

只是对这种盲目的解决方案的一个评论:我没有“本地”英文键盘(这是斯洛文尼亚语!),因此如果没有raspi-config或dpkg-reconfigure键盘配置,我的USB键盘将发送“ z”而不是“ y”,确实会影响盲密码登录。类似的问题也可能在其他非英语键盘上持续存在!从任务栏中的“您的语言”->“ EN”切换键盘/语言栏设置时,可以在Windows中检查默认英文字符。

– TomiL
13-10-16在17:09

@TomiL:好点。在德语键盘上,“ Z”和“ Y”也被交换。

– Peter Mortensen
14年7月6日在18:51

现在效果最好,最新的Raspbian jessie默认情况下已启用ssh,并使用用户名/密码pi / raspberry

– redDevil
16年7月21日在18:54

#8 楼

无法说说SSH是否可以直接使用,但是最新的配置实用程序版本具有“启用SSH”命令。之后,我可以通过网络连接到我的Raspberry。但是要启用它,无论如何都需要一个监视器。

评论


这基本上是最简单的方法。如果您有键盘,甚至不需要监视器就可以启用它。只需要一个命令即可盲目运行。

–马特
2012年10月31日14:19



#9 楼

一个警告:使用Arch Linux,仅当我在启动Raspberry Pi之前连接了以太网时才对我有用(然后工作正常:默认情况下启用sshd)。如果我先启动,然后连接以太网电缆,则Raspberry Pi永远不会与DHCP服务器联系以获得IP地址。

#10 楼

没有路由器+没有屏幕+常规以太网电缆+ RPI 2 + Raspbian Lite 2018-11-13 + Ubuntu 18.10主机。

如果您已经通过非SSH方法在Pi上安装了外壳,例如屏幕+键盘或UART(请参见下文),则只需运行:

sudo systemctl enable ssh
sudo service sshd start


解释如下:SSH无法与全新安装配合使用这在引导程序中仍然存在。

否则,将SD卡插入主机,然后在ssh分区。

在Ubuntu主机上,它会自动挂载,您可以执行以下操作: />
sudo touch /media/$USER/boot/ssh


其中包含:将会失败,并显示以下内容:

lsblk


稍​​后再试。

启用SSH服务器后

/>接下来,启动Pi,然后将笔记本电脑的以太网电缆直接连接到Pi:



在Ubuntu 17.04上,可以解决此错误。回答您的第一个需求:

mmcblk0     179:0    0  14.4G  0 disk
├─mmcblk0p1 179:1    0  43.9M  0 part /media/ciro/boot
└─mmcblk0p2 179:2    0  14.4G  0 part /media/ciro/rootfs


在主机上,打开网络管理器:

ssh: connect to host 10.42.0.160 port 22: Connection refused


然后继续:



boot/符号(添加新连接)
以太网
创建
IPv4设置
方法:共享给其他计算机
为其设置一个好名字
保存



在主机上查找Pi的IP:

sudo apt-get install dnsmasq-base


输出类似以下内容:

nm-connection-editor


+是IP,然后照常:

cat /var/lib/misc/dnsmasq.leases


我的10.42.0.160中也包含以下内容:

1532204957 b8:27:eb:0c:1f:69 10.42.0.160 raspberrypi 01:b8:27:eb:0c:1f:69


从Pi内部,请注意,它可以通过主机的其他接口正常访问Internet :

ssh pi@10.42.0.160


例如,在我的笔记本电脑上,Pi占用了以太网,但是主机也通过WiFi连接到互联网。如果主机网卡支持Auto MDI-X,则不需要交叉电缆。大多数最新硬件就是这种情况,例如我测试过的2012年联想T430,它具有“英特尔®82579LM千兆网络连接”,其中记录了对Auto MDI-X的支持。

还可以:


通过Ubuntu的Wifi连接从PI访问Internet
也可以打开VNC摆脱显示:如何在不使用Raspberry Pi的情况下设置Raspberry Pi显示器? wikipedia.org/wiki/Serial_port

它不使用SSH或网络本身,而是使用更旧,更简单,更直接,更可靠,带宽更低,距离更短的串行接口。 Pi不能通过这种方法访问Internet。因此我们需要购买便宜的USB适配器。我在这里使用过:https://www.amazon.co.uk/gp/product/B072K3Z3TL另请参阅:https://unix.stackexchange.com/questions/307390/what-is-the-difference-between- ttys0-ttyusb0-and-ttyama0-in-linux / 367882#367882

首先将SD卡插入主机,然后编辑第一个分区中存在的.bashrc文件以添加:

piip() ( cat /var/lib/misc/dnsmasq.leases | cut -d ' ' -f 3; )
pissh() ( sshpass -p raspberry ssh "pi@$(piip)"; )


,如下所述:https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=141195

此第一个分区包含引导程序,其配置文件和(Linux /您的)内核,config.txt是其中之一。第二个分区包含实际的Linux根文件系统。

现在将计算机连接到Pi的方式为:



您只需附加3电缆:


接地
Pi上的Tx到USB到串行端口上的Rx
Pi上的Rx到USB到串行端口上的Tx上

也记录在以下位置:https:/ /www.raspberrypi.org/documentation/usage/gpio/README.md

注意不要将地线连接到5V,因为这样做,我已经烧掉了2个UART到USB芯片! br />
根本不需要将5V连接到5V。我想您可以像这样为Pi供电,但我读到这是一个坏主意,只需使用常规的USB电源即可。

最后,将连接器的USB端插入主机计算机,并得到一个带有以下内容的外壳:

ping google.com


退出并带有config.txt。 www.youtube.com/watch?v=zUBPeoLW16Q

#11 楼

如果您使用Debian,那么可以在短短几分钟内就可以为您的RPi提供屏幕和网络,这很容易。如果没有,您可以从Ubuntu主机上测试“ nmap”和“ ssh”的命令。

只需检查软件包openssh-server是否已安装,就可以了。您可以使用aptitude install openssh-server在命令行中执行此操作。登录到计算机后,您还可以检查或重命名RPi。您还可以检查是否已安装了avahi-utilsavahi-daemon软件包,只需尝试aptitude install avahi-utils即可。作为DNS域local中的计算机。因此,如果您的计算机名为rpi-machine,请尝试使用rpi-machine.local连接到该计算机。

Apple和Ubuntu计算机均应实现此功能。您的MS Windows 7机器却无法做到这一点。在Ubuntu计算机上,您可以尝试以下命令:您的计算机及其服务,例如列出的SSH和HTTP。

您还可以尝试在Ubuntu计算机中安装软件包/etc/nsswitch.conf。然后,您可以使用命令nmap来检查您所在的IP网络,以查看您所在的IP网络。例如,在我的机器上,我可能会得到类似的信息(这是来自example.com,因此请不要使用它):净ip route list和路由器是192.0.43.0/24。因此,如果您运行命令192.0.43.1将尝试查找网络中的所有计算机,并告知哪些端口已打开。查找端口nmap 192.0.43.0/24,因为这是ssh服务器。

#12 楼

我确实使用以下步骤成功设置了没有屏幕或键盘的Raspberry PI:


下载debian-pi / raspbian-ua-netinst的最新映像。当前的是raspbian-ua-netinst-v1.0.7.img.bz2。下载的文件仅约17 MB。

下载“ Apple Pi Baker App”并使用此软件将图像传输到SD卡上。



将SD卡插入您的PI中,大约15分钟后,将安装最新的Raspbian。 。




现在我可以像这样通过SSH连接到该IP:

# Password = raspbian
ssh root@192.168.1.13 



还有Voila,我无需进行繁琐的配置即可通过SSH访问。 >


#13 楼

由于我还有其他可以连接的Pi,我作弊。

我从不允许我连接的Pi中取出Micro SD卡,然后将其放入其中一个USB读取器中运行中的Pis。

,然后将其安装到测试文件夹(sudo mount /dev/sda2 /mnt/test),然后将其安装到chroot /mnt/test,作为新的外壳。卸下卡后,将卡取出,启动Pi,然后打开SSH端口并可以访问。

#14 楼

初始配置后,进行连接的最佳方法之一是在Raspberry Pi上启动avahi-daemon并运行。在计算机上,您只需使用raspberrypi.local作为主机名登录。因此,无需配置IP地址,无论是静态IP地址还是动态IP地址。

要在Raspberry Pi上安装avahi-daemon,请执行以下操作:如果您在主机上安装了iTunes,则只需在PuTTY中输入raspberrypi.local,否则请从此处安装Bonjour。查看本教程以获取更多信息。

#15 楼

您可能想尝试一下raspbian-ua-netinst:单击此处可以找到它。它是Raspberry Pi 1B,1B +和2B模型的最小Raspbian无人值守网络安装程序。不需要屏幕或键盘。
它们在README.md中具有出色的安装手册。

基本上,您只需对SD卡进行FAT格式化。将最新的稳定版本解压缩到其中,然后将SD卡插入Raspberry Pi。安装最小的Raspbian安装大约需要20到30分钟,然后您就可以开始了。默认情况下已安装SSH。
有一些选项可让您在初次安装期间安装其他软件包和内容。

#16 楼

对于Raspbian,我发现本教程非常有用。执行其中描述的步骤后,我能够使用用户pi和密码raspberry从Windows 10便携式计算机通过SSH到我的Raspberry PI。


确保Raspberry Pi已关闭电源,然后卸下SD卡。
将SD卡插入读卡器,然后将其插入笔记本电脑。
找到驱动器,您应该在Card上找到几个文件(请注意,它比您期望的要小得多,因为它只是Card的引导部分
(其余部分被隐藏了))。复制cmdline.txt并将其重命名为cmdline.normal
编辑cmdline.txt并在末尾添加IP地址(请确保不要添加任何多余的行)。

对于自动获得IP地址的网络设置,
使用169.254.XX(169.254.0.0 –

ip=169.254.0.2

对于IP地址固定的网络设置,请使用一个地址
与笔记本电脑/计算机的地址匹配,但最后一位数字除外。

ip=192.168.0.2

确保记下该IP地址(每次都需要它
您想直接连接到Raspberry Pi)。


新建cmdline.txt副本并将其重命名为cmdline.direct
要在配置之间交换,只需替换cmdline .txt使用cmdline.normal或cmdline.direct(或使用Option
2中的命令直接在Raspberry Pi上执行-更改将在下次启动时生效

将卡返回Raspberry Pi。将网络电缆连接至计算机和Raspberry Pi,并打开电源。

注意以下事项:


您需要等待计算机完成安装检测网络设置(您可能会在您的
中看到一个小的网络图标闪烁系统托盘,或者打开网络设置以查看它何时完成并具有IP地址)-大约需要1/2
分钟。当您以这种方式连接到Raspberry Pi时,您的计算机可能会报告该连接为“受限或无连接”,这是正常的,因为这表明它是计算机与计算机的直接连接,而不是标准网络。
如果忘记或决定不插入网络电缆,Raspberry Pi将等待2分钟(或直到您连接电缆)。
完成启动之前(因此,如果您仅连接了键盘和
监视器,您需要等待!)。
如果您在计算机上使用多个有线网络适配器(即,使用额外的USB-LAN加密狗),您可能会发现必须拔下
另一条网络电缆,然后重新连接(我的Windows XP机器
在通过直接链接连接之前需要此电缆)。