SSH到RPi无需网络连接?


36

是否可以SSH在没有网络连接的情况下进入RPi?

我可以想象您可以使用从计算机到RPi的LAN电缆或使用USB电缆来完成此操作。

我实际上确实可以访问网络,但是我无法想象它不允许传入连接(甚至从本地IP)到除80和443之外的任何端口。


3
只需使用交叉电缆,我想这就是您需要的解决方案;)。像这样连接UTP电缆中的所有电缆:numitechsolutions.com/wp-content/uploads/2012/01/…,然后将其与PI和PC连接。给他们一个IP,完成;)。
劳伦斯

关于连接过程,有一篇很棒的文章:Raspberry Pi远程连接–没有网络!。它说明了Mac和Windows笔记本电脑的配置。
托马什Zato

1
使用现代以太网适配器,不再需要交叉。在Windows框中,只需与局域网“共享”您的WIFI网络连接(打开适配器属性,共享)。RPI将从那里获取IP地址。这将使您可以从Windows框中通过SSH访问RPi,但不能从外部访问。
fcm

正如fcm评论所说,交叉电缆现在基本上已经成为过去 ; 当连接在一起时,包括pi上的接口在内的现代以太网接口在物理上会相互交叉。
goldilocks

我也一直坚持这个问题,现在我可以解决。所以我需要分享我的解决方案。您可以看到此链接,topboxbox.blogspot.com
2017/

Answers:


6

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

首先,我们必须在Pi上启用SSH服务器,为安全起见默认禁用该服务器。

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

sudo systemctl enable ssh
sudo service sshd start

如下所述:SSH无法与全新安装配合使用这在启动过程中仍然存在。

否则,将SD卡插入主机,然后sshboot/分区中创建一个名为file 的魔术空文件。

在Ubuntu主机上,它会自动挂载,您可以执行以下操作:

sudo touch /media/$USER/boot/ssh

您可以通过以下方式确认:

lsblk

其中包含:

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

如果您未在Pi上启用SSHD守护程序,则SSH连接将失败,并显示以下信息:

ssh: connect to host 10.42.0.160 port 22: Connection refused

当我们稍后尝试时。

启用S​​SH服务器后

接下来,启动Pi,并将以太网电缆从笔记本电脑直接连接到Pi:

在此处输入图片说明

在Ubuntu 17.04上,要解决此答案中提到的错误,您首先需要:

sudo apt-get install dnsmasq-base

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

nm-connection-editor

去:

  1. + 签名(添加新连接)
  2. 乙太网路
  3. 创建
  4. IPv4设置
  5. 方法:共享到其他计算机
  6. 给它起个好名字
  7. 保存

在此处输入图片说明

在主机上找到Pi的IP:

cat /var/lib/misc/dnsmasq.leases

输出类似:

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

10.42.0.160 是IP,则照常:

ssh pi@10.42.0.160

我也有以下内容.bashrc

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

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

ping google.com

例如,在我的笔记本电脑上,Pi占用了以太网,但是主机也通过WiFi连接到了互联网。

是交叉线并非如果主机网卡需要支持自动MDI-X 。大多数最新硬件就是这种情况,例如我测试过的2012年联想T430,它具有 “英特尔®82579LM千兆网络连接”,其中记录了对Auto MDI-X的支持

现在您还可以:

UART串行USB转换器

如果您只想在Pi上安装Shell,可以使用SSH替代:https : //en.wikipedia.org/wiki/Serial_port

它不使用SSH或网络本身,而是使用较旧,更简单,更直接,更可靠,带宽更低,距离更短的串行接口。Pi无法通过这种方法访问Internet。

台式计算机仍然具有一个串行端口,您可以直接将其与Pi进行线对线连接,但是大多数笔记本电脑都隐藏了这些端口,因此我们需要购买便宜的USB适配器。我在这里使用过:https : //www.amazon.co.uk/gp/product/B072K3Z3TL另请参阅:https : //unix.stackexchange.com/questions/307390/what-is-the-difference-between- ttys0-ttyusb0-和-ttyama0-in-linux / 367882#367882

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

enable_uart=1

如以下网址所述: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芯片!

您根本不需要将5V连接到5V。我认为您可以像这样为Pi供电,但是我读到这是一个坏主意,只需使用常规的USB电源即可。

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

sudo apt install screen
sudo usermod -a -G dialout $USER
screen /dev/ttyUSB0 115200

退出Ctrl-A \

这是Adafruit播放的视频:https : //www.youtube.com/watch?v= zUBPeoLW16Q

也可以看看

关于堆栈溢出的类似问题:https : //stackoverflow.com/questions/16040128/hook-up-raspberry-pi-via-ethernet-to-laptop-without-router


您不应该重复相同的答案。而是使用指向您的第一个答案的链接进行评论,或者最多使用具有不同方面的新答案以及指向第一个答案的链接作为参考。
Ingo

@Ingo我相信对于两个问题,到目前为止,这是最好的答案。如果您认为我还没有回答任何问题,请告诉我。评论只会在评论的海洋中消失,然后其他人将以不同的措词重复相同的内容。
Ciro Santilli新疆改造中心法轮功六四事件

2

您可以通过LAN电缆将pi连接到笔记本电脑,轻松实现此目的。请确保(第一次执行此操作时,在列表中)让dhcp服务器在笔记本电脑上工作并且正在侦听用于与pi连接的LAN接口。您需要以某种方式为树莓派分配地址。


您不需要dhcp。
劳伦斯

1
如果您已静态配置IP,则不必这样做。如果不是,您需要一些东西来给您一个IP地址。
codewarrior 2012年


1

问题是您要连接2个相同类型的设备。但这仍然是可能的。您可以为此使用交叉电缆(方法1),也可以使用交换机或集线器自动建立交叉连接(方法2)。或者只是使用一个简单的路由器(方法3)。

建立连接

方法1:

使用交叉电缆连接PC和PI:

以太网交叉电缆是一种用于将计算设备直接连接在一起的以太网电缆。正常的直通电缆或跳线用于从主机网络接口控制器(计算机或类似设备)连接到网络交换机,集线器或路由器。具有“交叉”连接的电缆用于连接两个相同类型的设备:两个主机或两个交换机彼此连接。由于包含了Auto-MDIX功能。

您需要像这样在UTP电缆中连接电缆:http : //www.incentre.net/wp-content/uploads/2015/02/ethcablerj45cr.gif

资料来源:http : //en.wikipedia.org/wiki/Ethernet_crossover_cable

方法2:

您也可以使用现代双绞线以太网电缆连接到PI。但是您需要一个集线器或交换机:

可以通过MDI-X端口使用直通电缆进行连接,也称为“内部交叉”或“嵌入式交叉”连接。具有此类内部分频器的集线器和交换机端口通常都这样标记,即带有“上行链路”或“ X”。例如,3Com通常将其端口标记为1X,2X等。在某些情况下,提供了一个按钮以允许端口充当普通端口或上行链路端口。

资料来源:http : //en.wikipedia.org/wiki/Ethernet_over_twisted_pa​​ir

更多信息:

它于1998年推出,使上行链路端口和普通端口之间的区别以及旧式集线器和交换机上的手动选择器开关已不再适用。如果两个连接的设备中的一个或两个都具有自动MDI / MDI-X配置功能,则无需交叉电缆。尽管在1000BASE-T标准中将Auto-MDIX指定为可选功能,但实际上,它已在大多数接口上广泛实现。除了最终商定的自动MDI / MDI-X,此功能还可以通过各种特定于供应商的术语来引用,包括:自动上行链路和贸易,通用电缆识别和自动感应。

资料来源:http : //en.wikipedia.org/wiki/Ethernet_crossover_cable

方法3

使用路由器并将PI和PC都连接到路由器。

建立连接

给他们两个都在相同范围内的IP,例如:

PC: 192.168.1.10 Subnet: 255.255.255.0
PI: 192.168.1.11 Subnet: 255.255.255.0

您可以在此处找到如何执行此操作:http : //www.cyberciti.biz/faq/linux-configure-a-static-ip-address-tutorial/

启用S​​SH

http://steve.dynedge.co.uk/2012/05/29/enabling-ssh-on-debian-raspberry-pi/

连接到PI

在Windows上,例如使用Putty

其他方法:

您也可以在这里查看:http : //www.linux-usb.org/usbnet/


方法2如何运作?我不需要计算机上的活动网络连接吗?
Tyilo

我没有完成那架喷气式飞机。给我1秒
劳伦斯

4
我认为人们不得不使用交叉电缆的时间已经一去不复返了:)现在,每张新的以太网卡都可以进行交叉连接,而无需使用交叉电缆。
codewarrior 2012年

您永远都不知道他拥有哪种PC,除此之外,您始终可以尝试使用UTP电缆。
劳伦斯

普通的直以太网电缆在PI 2上工作,请在其接口可以识别的位置进行读取。刚刚在Ubuntu 16.04,RPI 2 Raspbian 2016.05上进行了测试。
Ciro Santilli新疆改造中心法轮功六四事件
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.