我需要通过wifi SSH我的Pi,但是因为它是A型板(不可能使用USB集线器-曾经)并且我没有以太网,所以我无法配置Pi以连接到我的安全wifi网络。我想将SD卡插入笔记本电脑,并想编辑其中包含wifi配置信息的文件,这样我的Pi在启动时会自动连接到我的网络,因此我可以通过SSH进行控制。有了这个答案,我知道如何在无头系统上启用SSH。

编辑。 SD卡在我的PC中,并放入其中的所有网络ssid,psk和wlan0。这样行吗?谢谢

评论

你在那里面临着相当的困境。我建议暂时使用USB LAN通过SSHS连接。大多数驱动程序都包括在内。插入您的WiFi,然后按照此答案在Pi上设置WiFi。病房重新启动后,请拔掉LAN的插头,然后使用Wifi进行启动。它会在几分钟内自动连接。

低成本的设置方法是使用USB串行适配器连接到GPIO接头上的串行。您甚至不需要启用ssh即可执行此操作

请参阅我的回答[这里] [1]以获取替代方法[1]:raspberrypi.stackexchange.com/a/31397/30719

#1 楼

这里有一些很好的答案,但是许多已经过时了。自2016年5月以来,Raspbian能够将wifi详细信息从/boot/wpa_supplicant.conf复制到/etc/wpa_supplicant/wpa_supplicant.conf以自动配置无线网络访问:下次引导系统时,转到/ etc / wpa_supplicant /目录,覆盖网络设置;这样可以将Wifi配置从只能看到引导分区的Windows或其他计算机预加载到卡上。
-Raspbian的最新更新-Raspberry Pi,2016-05-13

由于任何配备SD卡读卡器的计算机都可以访问/boot分区,因此现在wifi配置变得更加简单。
典型的wpa_supplicant.conf文件为:带有ISO国家/地区代码的-1_two-letter_country_code»(例如加拿大的CA),带有无线访问点名称的«your_SSID»和带有无线密码的«your_PSK»。
如果您不想存储您的wifi密码为纯文本格式时,可以使用wpa_passphrase实用程序存储哈希密码:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=«your_ISO-3166-1_two-letter_country_code»

network={
    ssid="«your_SSID»"
    psk="«your_PSK»"
    key_mgmt=WPA-PSK
}

该实用程序将提示输入密码,并将返回十六进制哈希值。请注意,此哈希密码存储在/boot/wpa_supplicant.conf中,但不带引号,例如:连接到网络。可以重复上述过程以纠正遗漏。
截至2018年11月发行版,此过程已经在Raspbian和Raspbian Lite上进行了测试。通过Shell(SSH)访问无头Raspberry Pi。出于安全原因,默认情况下在Raspbian上禁用SSH。您可以通过创建一个名为country的文件来启用它:

对于无头设置,可以通过将名为“ ssh”的文件(没有任何扩展名)放置到SD卡的引导分区上来启用SSH。当Pi启动时,它会寻找“ ssh”文件;如果找到,则启用SSH,然后删除该文件。该文件的内容无关紧要:它可以只包含文本,也可以不包含任何内容。尽快更改标准pi用户的密码。由于默认密码(raspberry)是众所周知的,因此您更改网络之前,您的Raspberry Pi会有效地向网络上的所有人开放。您可以使用ctrl_interface命令执行此操作。

评论


此解决方案有两个限制(已使用2016-09-23图像进行了测试):1.文件必须使用Linux样式行结尾(LF而不是CR LF)格式化。 2.它不适用于我的Raspberry Pi 3上的Raspbian light图像。

–user2154065
16年11月23日在20:24

@ user2154065 1.右键单击右下角的“ Dos \ Windows”,然后选择“ UNIX / OSX格式”,使用Notepad ++将文件隐蔽到LF。 2. Raspbian Lite中可能不包含wpasupplicant软件包。

–Hydraxan14
17 Mar 3 '17 at 0:24



现在,我有几台Raspbian Lite计算机正在运行,我敢肯定我的评论是错误的:wpa_supplicant已包含在内,或者可以轻松安装。

–scruss
17 Mar 4 '17 at 3:34

@kleinfreund不要在明文中包含密码。运行“ wpa_passphrase SSID”(使用您的SSID),并在出现提示时输入密码。将输出复制到wpa_supplicant.conf文件中,删除包含明文的行,仅保留哈希版本。 (您可以在其他系统上执行此操作,因此在为Pi设置micro SD时可以提前保存文件。)

– Peter Hansen
17年7月12日在0:09

@scruss-您的答案几乎是正确的,请将此行添加到上面的wpa_supplicant.conf示例中:ctrl_interface = / var / run / wpa_supplicant我刚刚尝试过使用Raspbian Strech Lite进行新的Zero W

– ctekse
17/09/5在20:36



#2 楼

一些特定的说明:

/etc/network/interfaces的内容:

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
    wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
    post-up ifdown eth0
iface default inet dhcp
的内容

/etc/wpa_supplicant/wpa_supplicant.conf的内容:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="YOUR_SSID_HERE"
    psk="YOUR_SECRET_PASSPHRASE_HERE"
    id_str="SOME_DESCRIPTIVE_NAME"
}


诚实。这两个文件,具有给定的内容,是我在所有pi上使用的文件。他们启动并立即连接到我的无线路由器。 DHCP协商提供了一个地址,我的路由器将主机名解析为正确的IP地址。确保通过/etc/hostname适当地命名每个PI。

尾部interfacesiface default...文件中的名称很奇怪,否则无线WPA连接将无法建立。 wpa_supplicant.conf文件也可以有多个network={条目,我过去常常带我的pi工作...插入并瞧瞧,它也在那里自动连接,但是工作的配置有些复杂。作为示例,请在wpa_supplicant.conf文件中添加/替换以下内容:

network={
    ssid="THE_OFFICE"
    scan_ssid=1
    key_mgmt=WPA-EAP
    eap=PEAP
    identity="WORK_USERNAME"
    password="WORK_PASSWORD"
    phase1="peaplabel=0"
    phase2="auth=MSCHAPV2"
    id_str="SOME_DESCRIPTIVE_NAME"
}


本质上,它将扫描wpa_supplicant.conf文件并连接到发现匹配的第一个网络。非常便利。也可以通过这种方式使其自动连接到任何“开放”网络。不是最聪明的事情,但是可行。

评论


我还需要有一个静态IP,因为它没有头,我将无法在不知道其IP地址的情况下使用它。我目前在wpa_supplicant.conf中具有id_str =“ home”,在interfaces文件中具有iface home inet静态(位于其下的静态IP信息),这为我提供了一个静态IP,但是我不确定这是否是设置它的最佳方法设置有点混乱(启动时出现错误“找不到设备“家””)。

– 11chubby11
13-10-30在10:21



我使用dyn.com(或dyndns.com)允许使用正确的名称访问我的pi,使用ddclient自动将名称设置为正确的地址。或者,使用路由器指定一个静态dhcp地址,该地址要有用得多。我还使用upnpcd动态设置upnp设置,以允许我从网络外部连接到系统,现在不再需要静态IP,无论它在哪里,它都可以自行设置。 (iface节只能将lo / eth0 / wlan0 / default作为选项,“ home”将不起作用)

– lornix
13-10-30在10:26

如何在SD引导中添加/ etc / network / interfaces?只需将其放在任何地方,它将复制它?

– denislexic
17年8月31日在21:31

基本上是对lornix答案的评论-我成功使用了其解决方案-因为我没有代表来写评论。为了编辑根文件系统,您需要安装第二个分区,而不是第一个引导分区。我做了:sudo mount / dev / sdc2 / mnt之后,我可以在/ mnt根目录下编辑文件,即/mnt/etc/wpa_supplicant/wpa_supplicant.conf和/ mnt / etc / network / interfaces和/ mnt / etc / hostname (再次使用sudo)。完成后,将CD从/ mnt层次结构中移出,然后执行sudo umount / mnt。然后可以将SD卡插入Rπ并启动。请注意,这需要使用Linux计算机,

– Ketil Malde
18年2月12日在19:32

#3 楼

自2016年11月以来,出于安全原因,默认情况下已在标准Raspbian映像中禁用SSH。

要重新启用它,请在sd卡启动文件夹中创建一个名为sshssh.txt的空白文件(可访问fat32分区)从Windows开始)

要预先配置wifi设置,您还创建了一个名为wpa_supplicant.conf的文件,其中包含:在Windows上,然后使用记事本进行编辑。

评论


很高兴看到他们大大简化了设置!好答案!

– lornix
18年2月19日在19:09

#4 楼

从RASPBIAN STRETCH开始,您必须在ctrl_interface中包含update_configwpa_supplicant.conf

要在启动时使用ssh进行wifi,请在SD卡上执行以下简单步骤:


touch /<sd mount point>/boot/ssh
nano <sd mount point>/boot/wpa_supplicant.conf

内容如下:

country=AU  #omit if US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="YourNetworkSSID-1"
    psk="passwordOne"
}



卸下SD卡,放入pi,启动pi


#5 楼

您可以使用interfaces文件。加载所有网络信息,并将其放入拇指驱动器,然后重新启动RPi。 RPi无需额外的硬件或显示器即可进行设置并设置WiFi。

之后,您可以SSH到Pi并安装VNC以获取GUI。如果您需要逐步说明,请在http://www.dexterindustries.com/BrickPi/getting-started/using-the-pi/
上查看Option 3: Connect with WiFi

评论


无法解决这个问题。无法在互联网上找到有关此设置wifi的任何其他信息。

– 11chubby11
13年11月1日在2:41

忘记提及用于自动执行此操作的脚本。这里是

–卡兰
2014年5月14日下午6:31

#6 楼

您还可以配置SD卡,该卡将在Raspberry pi(Raspberry Pi无头安装程序)上通过预先配置的WiFi连接自动安装Rasbian。

步骤1:下载Noobs
在https://上获取并解压缩最新的Noobs软件(脱机版本和网络安装版本)。 www.raspberrypi.org/downloads/

替代方法:直接链接到文件:http://downloads.raspberrypi.org/NOOBS_latest

在撰写本文时,最新的NOOBS版本是1.4.0

步骤2:无头配置
在os /目录中,删除除rasbian /之外的所有其他文件夹。实际上,您应该只有一个名为Data_Partition的文件夹。

在rasbian /文件夹中,编辑flavours.json文件。您应该看到以下内容:

{
  "flavours": [
    {
      "name": "Raspbian - Boot to Scratch",
      "description": "A version of Raspbian that boots straight into Scratch",
      "supported_hex_revisions": "2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,1040,1041"
    },
    {
      "name": "Raspbian",
      "description": "A Debian wheezy port, optimised for the Raspberry Pi",
      "supported_hex_revisions": "2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,1040,1041"
    }
  ]
}


删除“ Raspbian – Boot to Scratch”部分,因此文件结尾应如下所示:

{
  "flavours": [
    {
      "name": "Raspbian",
      "description": "A Debian wheezy port, optimised for the Raspberry Pi",
      "supported_hex_revisions": "2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,1040,1041"
    }
  ]
}


在根NOOBS目录中编辑recovery.cmdline文件,并将silentinstall附加到参数列表中。文件的结尾应如下所示:

runinstaller quiet vt.cur_default=1 elevator=deadline silentinstall


步骤4(可选):配置自定义键盘布局和语言
如果要更改默认值键盘布局(美国)和/或默认语言(默认为“美国”)在recovery.cmdline文件的参数列表中追加lang = XX keyboard = XX(XX应该用您的语言和键盘代码替换,可以是fr ,de,…默认为us)。

文件的结尾应如下所示:

runinstaller quiet vt.cur_default=1 elevator=deadline silentinstall lang=fr keyboard=fr


步骤5(可选):配置Wifi
Noobs Config是在安装Rasbian之后将复制/粘贴某些文件的工具。除其他外,该工具还允许您在Pi上预配置Wifi。尽管如此,这仍假定Raspbian直接支持您使用的wifi加密狗。

第一件事是在GitHub(https://github.com/procount/noobsconfig/archive/master.zip)上下载Noobs Config

然后解压缩noobsconfig.zip和:


将“ customise.sh”复制到Noobs文件的根目录中
将“ os / Rasbian / partition_setup.sh”复制到Noobs文件的“ os / Rasbian /”目录中。
在“ os / Rasbian /”下创建一个名为“ wifi”的文件夹。
将“ Examples / Rasbian / wifi / wifi / wpa_supplicant.conf”复制到
“ os / Rasbian / wifi /” Noobs文件的目录。
将“ Examples / Rasbian / wifi / Raspbian_root.txt”复制到Noobs文件的“ os / Rasbian /”
目录。

最后一件事是在wpa_supplicant.conf中配置wifi上网ssid和psk(密码):

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid="MyNetwork"
psk="MyPassword"
}


步骤5(可选):更改默认密码
即使此步骤是可选的,强烈建议您更改Rasbian设置的默认密码。

编辑os / Rasbian / os.json文件。它看起来应该像这样:

{
  "name": "Raspbian",
  "version": "wheezy",
  "release_date": "2015-02-16",
  "kernel": "3.18",
  "description": "A community-created port of Debian wheezy, optimised for the Raspberry Pi",
  "url": "http://www.raspbian.org/",
  "username": "pi",
  "password": "raspberry",
  "supported_hex_revisions": "2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,1040,1041"
}


让我们在第9行更改默认密码。

步骤5:将文件复制到SD卡上并启动您的Raspberry pi
将文件复制/粘贴到FAT格式的SD卡上。

步骤6:几分钟后启动并连接
启动我们的SD卡(具体取决于在SD卡上,安装过程可能需要30分钟以上的时间),然后通过SSH连接到您的Pi。

......

评论


这些指令看起来很有希望,但是从NOOBS v1.9.2开始,os / Raspbian目录中没有flavours.json文件。由于编辑它的主要原因是删除替代版本,所以我认为在不需要时跳过该步骤是安全的。

–natevw
16年8月21日在16:11

#7 楼

对于Raspbian Stretch和较新版本的RetroPie,无头设置过程略有更改。

在引导目录中...将此文件放入wpa_supplicant.conf

touch ssh

nano wpa_supplicant.conf


卸下sd卡并插入pi进行启动

稍​​等片刻,找到您pi的IP地址

SSH进入pi

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
network={
    ssid="YOUR_NETWORK_NAME"
    psk="YOUR_PASSWORD"
    key_mgmt=WPA-PSK
}


默认密码为raspberry

#8 楼

您需要在sdcard上编辑wpa_supplicant.conf文件(取决于发行版,它位于/etc/etc/wpa_supplicant中)。该文件的格式在这里说明:http://linux.die.net/man/5/wpa_supplicant.conf

评论


但是,如果无线掉线,它将无法使用基本设置自动重新连接。它要求您使用手动模式并与其他配置文件一起漫游。

– Piotr Kula
13-10-22在12:44

好吧,设置就足够了吧?因为如果网络可用,它将在wpa_supplicant启动时肯定会连接。我还认为,如果网络松动,wpa_supplicant应该自动重新连接。

–hogliux
13-10-22在13:01

除了我的最后评论,我想补充一点,我已经在具有最新debian的树莓模型A上使用了此方法。

–hogliux
13-10-22在13:07

如果您使用AUTO,则WPA请求者将不会重新连接,您需要将STATIC与ROAMING一起使用并定义SSID以连接到...。设置起来有些棘手。

– Piotr Kula
13-10-22在15:28



#9 楼

我创建了一个外壳脚本工具(不幸的是仅在Linux上运行),它可以自动完成下载最新Raspbian映像,解压缩映像,将wi-fi和以太网设置(由用户提供)嵌入映像,重新打包的整个过程映像并将其刻录到SD卡上。当您使用SD卡启动Pi时,它会立即与您的网络连接。该脚本还具有在网络上搜索新配置的Pi的功能。

您可以直接将Wi-Fi加密狗与您的Pi连接,使用RaspImgConfig.sh脚本将Raspbian映像嵌入Wi-Fi凭证并在卡上刻录图像。无需任何显示器,鼠标或键盘。

使用该工具的Youtube视频:
https://youtu.be/WdYb1L2WzjM

关于此,
Subhajit Ghosh

#10 楼

您可以将pi设置为使用受密码保护的wifi,并使用/ boot分区中的配置文件自动启动ssh而无需启动pi。

我将其用于AIY并使用nmap查找我的pi。

从那里可以直接连接到pi。

评论


您至少应说明所需的文件名及其内容,以及指向更多信息的链接。

–史蒂夫·罗比拉德(Steve Robillard)
18年5月14日在22:48

#11 楼

我认为所有这些答案都忽略了RPi模型A没有以太网,没有wi-fi的观点,因此,无论您做什么,除非获得外部加密狗,否则您将无法通过ssh连接到RPi。 ..最好的选择是直接在电视上使用它,或者通过插头上的串行端口使用它,或者如我所说,获得用于wifi的外部加密狗。

评论


我认为这暗示他已经在使用一个。可以假设OP知道没有某种适配器就无法连接到无线网络。

–冲动
2013年12月8日22:51