您如何在Debian Jessie中配置自动登录?

亚历克斯·柯克(Alexa Kirk)

我有一台装有Debian Jessie的无头计算机(TS-7680),可以通过Putty命令行进行访问。该计算机没有任何GUI,只能通过命令行访问。如果出现临时断电,它将与需要自动重新启动的程序一起放入现场。

我知道如何使程序自动运行。但是,我无法通过登录。每次启动计算机时,系统都会提示我输入root登录。我在这台计算机上没有密码。在启动代码之后,它看起来像这样:

Debian GNU/Linux 8 ts7680 ttyAMA0

ts7680 login:

在这一点上,我必须键入root以进入命令提示符root@ts7680:~#

有人知道如何自动登录吗?我到处都用Google搜索,但是找不到答案。没有运气尝试过这种解决方案

伊尔卡楚

假设systemd对待ttyAMA0串行端口的方式ttyS0与在PC上对待的方式相同,则需要编辑由开头的命令[email protected]

(您可以检查systemctl status serial-getty@ttyAMA0它是否处于活动状态。)

基本版本位于其中/lib/systemd/system/[email protected],在其中,我们找到启动getty的命令:

ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM

创建一个覆盖文件的服务来启动agetty--autologin root:创建目录/etc/systemd/system/[email protected],以及一个名为override.conf它包含以下内容:

[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin root --keep-baud 115200,38400,9600 %I $TERM

systemctl edit [email protected] 将有助于做到这一点。

请注意,作为参数传递给的终端类型agetty需要与您的串行终端实际匹配。多年来,这一直是系统化中各种方法的主题。它已经硬连接到vt102内核/引导加载程序并从内核/引导加载程序(间接)继承。目前的方法(截至2020年)在决策方式上相当复杂。

但是,它最终只会从三个值linux中进行选择vt220,以及内核/引导程序加载程序对Linux控制台所说的内容。对于任何实际终端,第一个都不是正确的,甚至不可能通过串行电缆近似匹配终端仿真器。第二个不太可能是正确的,尤其是在色彩方面。都不匹配PuTTY,其正确的终端类型是putty(或putty-256color)。而且第三个可能也不putty是;除非您已将Linux重定向/dev/console到串行终端和PuTTY,并且已在控制台中使用控制台终端类型正确地重新配置了引导加载程序。

因此,为了获得最佳结果,您还需要TERM在该覆盖文件中设置环境变量:

Environment=TERM=putty-256color

然后重新加载systemd,我们可以检查新配置是否到位:

# systemctl daemon-reload
# systemctl cat serial-getty\@ttyAMA0 | grep Exec

(我们应该在最后ExecStart一行看到新命令。)

如果只想在按键后自动登录,请命令行中添加-p--login-pauseagetty


您链接的页面讨论了如何在虚拟控制台上配置自动登录:它们是通过配置的[email protected],用于的命令行agetty有些不同(似乎只是缺少该--keep-baud选项)。在这种情况下,我们将使用/etc/systemd/system/[email protected]/override.conffortty1代替。

Ask Ubuntu中一个答案,其中包含有关覆盖systemd配置的更多详细信息。


在使用sysvinit而不是systemd的系统上,您需要在/中添加/修改与串行端口相对应的行/etc/inittab

T0:23:respawn:/sbin/getty -L ttyAMA0 --autologin root 38400 vt100

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章