HASSHOME

SHH组件说明

222
发表时间:2022-11-03 07:12作者:锄头

Home Assistant社区附加组件:

SSH & Web Terminal

此附加组件允许您使用SSH或Web终端登录到Home Assistant,允许您访问文件夹,还包括一个命令行工具来执行诸如重新启动、更新和检查实例等操作。

这是提供的由Home Assistant提供的SSH附加组件并注重安全性、可用性、灵活性,还提供使用web界面的访问。

警告

SSH & Web Terminal插件非常强大,可以让您访问系统中几乎所有的工具和硬件。

虽然创建和维护此附加组件时要小心,并考虑到安全性,但如果由错误或缺乏经验的人操作,则可能会损坏您的系统。

特征

当然,这个附加组件提供了一个基于OpenSSH以及一个基于网络的终端(可以包含在家庭助理前端中)。此外,它还附带以下内容:

  • 从Home Assistant前端访问您的命令行!

  • SSH的安全默认配置:

    • 仅允许配置的用户登录,即使创建了更多用户。

    • 只使用已知的安全密码和算法。

    • 限制登录尝试以更好地阻止暴力攻击。

    • 更多的安全措施,此加载项通过所有ssh审核检查没有警告!


  • 附带了SSH兼容模式选项,允许较旧的客户端进行连接。

  • 支持Mosh允许漫游,并支持间歇连接。

  • SFTP支持在默认情况下是禁用的,但用户可以配置。

  • 如果Home Assistant是通过通用Linux安装程序安装的,则兼容。

  • 用户名是可配置的,所以root不再是强制性的

  • 在附加组件重新启动之间保持自定义SSH客户端设置和密钥

  • 对音频、uart/串行设备和GPIO引脚的硬件访问。

  • 以更多权限运行,允许您调试和测试更多情况。

  • 可以访问主机系统的dbus。

  • 可以选择访问主机系统上运行的Docker实例。

  • 运行在主机级网络上,允许您打开端口或运行小守护程序。

  • 有定制的阿尔卑斯包安装开始。这允许您安装您最喜欢的工具,每次登录时都可以使用这些工具。

  • 在加载项start上执行自定义命令,以便可以根据需要自定义shell。

  • ZSH公司作为其默认外壳。初学者更容易使用,更有经验的用户更高级。它甚至预装了“哦,我的ZSH”,同时启用了一些插件。

  • Bash:如果您不喜欢ZSH,那么可以再次启用Bash,这包括核心CLI和Home Assistant CLI的Bash完成。

  • 包含一组现成的工具:curl、Wget、RSync、GIT、Nmap、Mosquitto客户机、MariaDB/MySQL client、aweak(“唤醒局域网”)、Nano、Vim、tmux和一堆常用的网络工具。

  • 支持使用家庭助理服务调用在内部执行命令,例如,用于自动化。

安装

此附加组件的安装非常简单,与安装任何其他Home Assistant插件相比没有什么不同。

  1. 单击下面的Home Assistant My按钮以打开Home Assistant实例上的加载项。

  2. 单击“安装”按钮安装该附加模块。

  3. 配置username密码/authorized_keys选项

  4. 启动“SSH&Web终端”插件。

  5. 检查“SSH&webterminal”插件的日志,看看是否一切顺利。

配置

注意:请记住在配置更改时重新启动加载项。

SSH附加组件配置:

log_level: infossh:   username: homeassistant   password: ""   authorized_keys:    - ssh-rsa AASDJKJKJFWJFAFLCNALCMLAK234234.....   sftp: false   compatibility_mode: false   allow_agent_forwarding: false   allow_remote_port_forwarding: false   allow_tcp_forwarding: falsezsh: trueshare_sessions: truepackages:   - build-baseinit_commands:   - ls -la

注意:这只是一个例子,不要复制粘贴!创造你自己的!

选项:log_level

这个log_level选项控制外接程序的日志输出级别,并且可以更改为更详细或更详细,这在处理未知问题时可能很有用。可能的值包括:

  • trace:显示每个细节,就像所有调用的内部函数一样。

  • debug:显示详细的调试信息。

  • info:正常(通常)有趣的事件。

  • warning:非错误的异常事件

  • error:不需要立即操作的运行时错误。

  • fatal:出了点大问题。加载项无法使用。

请注意,每个级别都自动包含来自更严重级别的日志消息,例如。,debug也显示信息信息。默认情况下log_level设置为信息,这是建议的设置,除非您正在进行故障排除。

使用trace调试日志级别将SSH和终端守护进程置于调试模式。当SSH在调试模式下运行时,它一次只能接受一个连接。

选项组ssh


以下选项适用于选项组:ssh。这些设置仅适用于SSH守护程序。

选项ssh:用户名

此选项允许您更改通过SSH登录时使用的用户名。仅用于认证;你将成为root验证后的用户。使用因为用户名是可能的,但不建议使用。根据推荐的做法,用户名将转换为小写。

注意:由于限制,您需要将此选项设置为root以便能够启用SFTP功能。

选项ssh:密码

设置用于登录的密码。如果将其留空,则无法使用密码进行身份验证。我们强烈建议从安全角度不使用此选项。

选项ssh授权密钥

将一个或多个公钥添加到SSH服务器以用于身份验证。这是建议的过度设置密码。

请看一看真棒GitHub创建的文档关于使用公钥/私钥对以及如何创建它们。

注意:请通过粘贴到[]逗号分隔

选项ssh:sftp公司

设置为时true该插件将在SSH守护进程上启用SFTP支持。请仅在计划使用时启用它。

注意:由于限制,您需要将用户名设置为root以便能够启用SFTP功能。

选项ssh:兼容模式

这个SSH附加组件关注安全性,因此只启用了已知的安全加密方法。但是,一些老客户不支持这些功能。将此选项设置为true将启用原始的默认方法集,允许这些客户端连接。

注意:启用此选项会降低SSH服务器的安全性!

选项ssh:允许代理转发

指定是否允许ssh代理转发。

注意:启用此选项会降低SSH服务器的安全性!然而,这一警告值得商榷。

选项ssh:允许远程端口转发

指定是否允许远程主机连接到为客户端转发的端口。

注意:启用此选项会影响所有远程转发,因此在执行此操作之前请仔细考虑。

选项ssh:允许\u tcp_转发

指定是否允许TCP转发。

注意:启用此选项会降低SSH服务器的安全性!然而,这一警告值得商榷。

共享设置


以下选项在SSH和Web终端之间共享。

选项:zsh

该附加组件预先安装了ZSH并将其配置为默认shell。然而,ZSH可能不是您的首选。通过将此选项设置为false,您将禁用ZSH,而附加组件将回退到Bash。

选项:share_sessions

默认情况下,web客户端和SSH之间的终端会话是共享的。这样你就可以从其中任何一个地方找到你离开终端的地方。

此选项允许您通过将其设置为禁用此行为false,有效地将SSH设置为与以前一样。

选项:packages

允许您指定其他阿尔卑斯套餐安装在shell环境中(例如Python、Joe、Irssi)。

注意:添加多个包将导致加载项的启动时间更长。

选项:init_commands

使用init_commands选项。向列表中添加一个或多个shell命令,每次此加载项启动时都将执行这些命令。

已知问题和限制

  • 启用SFTP时,用户名必须设置为root.

  • 如果要使用rsync进行文件传输,则必须将用户名设置为root.

变更日志,发布

此存储库使用GitHub发布功能

发布基于语义版本控制,并使用MAJOR.MINOR.PATCH。简而言之,版本将根据以下内容进行递增:

  • MAJOR:不兼容或重大更改

  • MINOR:向后兼容的新功能和增强功能。

  • PATCH:向后兼容的错误修复和包更新。

支持

有问题吗?

你有几种方法可以让他们回答:

你也可以在此处打开问题github

作者和撰稿人

此存储库的原始设置是弗朗克·尼霍夫.

有关所有作者和贡献者的完整列表,请检查贡献者页面.

许可证

麻省理工学院执照

版权所有(c)2017-2022 Franck Nijhof

特此免费授予获得本软件和相关文档文件(以下简称“软件”)副本的任何人无限制地使用本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向其提供软件的人提供软件,但须符合以下条件:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,无任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对因本软件或本软件的使用或其他交易而引起的、与之相关的任何索赔、损害赔偿或其他责任负责,无论是合同诉讼、侵权诉讼还是其他诉讼。