使用操作系统准备SD,以便RPi始终以固定IP地址连接到以太网并启用SSH服务器。
准备SD通过操作系统,使RPi连接到网络,启用SSH服务器,然后广播其IP地址,以便我可以SSH到它。
以下哪种方法更容易?我该怎么做?还有其他方法吗?
我有以下工具:Ubuntu 10.4,MacOS 10.5,Windows 7,但只有Ubuntu具有读卡器。不幸的是,我无法访问路由器的DHCP表,它已完全关闭。
#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-utils
和avahi-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机器
在通过直接链接连接之前需要此电缆)。
评论
除了有用之外-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