是否可以SSH
在没有网络连接的情况下进入RPi?
我可以想象您可以使用从计算机到RPi的LAN电缆或使用USB电缆来完成此操作。
我实际上确实可以访问网络,但是我无法想象它不允许传入连接(甚至从本地IP)到除80和443之外的任何端口。
是否可以SSH
在没有网络连接的情况下进入RPi?
我可以想象您可以使用从计算机到RPi的LAN电缆或使用USB电缆来完成此操作。
我实际上确实可以访问网络,但是我无法想象它不允许传入连接(甚至从本地IP)到除80和443之外的任何端口。
Answers:
没有路由器+没有屏幕+常规以太网电缆+ 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卡插入主机,然后ssh
在boot/
分区中创建一个名为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
当我们稍后尝试时。
启用SSH服务器后
接下来,启动Pi,并将以太网电缆从笔记本电脑直接连接到Pi:
在Ubuntu 17.04上,要解决此答案中提到的错误,您首先需要:
sudo apt-get install dnsmasq-base
在主机上,打开网络管理器:
nm-connection-editor
去:
+
签名(添加新连接)在主机上找到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条电缆:
这也记录在: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
您可以通过LAN电缆将pi连接到笔记本电脑,轻松实现此目的。请确保(第一次执行此操作时,在列表中)让dhcp服务器在笔记本电脑上工作并且正在侦听用于与pi连接的LAN接口。您需要以某种方式为树莓派分配地址。
对我来说,最方便的方法是在我的Android设备上使用USB网络共享,将其连接到树莓派,然后从我的手机通过SSH到树莓派。
看到这篇文章使用USB从Android SSH到rPI?
问题是您要连接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_pair
更多信息:
它于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/
启用SSH
http://steve.dynedge.co.uk/2012/05/29/enabling-ssh-on-debian-raspberry-pi/
连接到PI
在Windows上,例如使用Putty。
其他方法:
您也可以在这里查看:http : //www.linux-usb.org/usbnet/