『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 58368|回复: 64

[进阶教程] Hassio下使用SSH远程开关Linux/Mac

  [复制链接]

13

主题

148

帖子

1071

积分

金牌会员

Rank: 6Rank: 6

积分
1071
金钱
923
HASS币
0
发表于 2019-11-21 01:21:52 | 显示全部楼层 |阅读模式
本帖最后由 549876099 于 2022-3-21 04:22 编辑

游客,如果您要查看本帖隐藏内容请回复

Hassio 有 RPC 插件可以很方便的关闭 Windows 主机,但是在配置 Unix 系统的关闭时遇到较多坑。

Error running command:"", return code: 255

看以前的教程会遇到上述错误,以下教程解决了这个问题。

一、配置 Unix 端(被控主机)无密码运行 sudo shutdown

1.修改sudoers文件

1)首先,找到shutdown的路径

$ which shutdown

通常位于/sbin/shutdown

2)打开visudo

$ sudo visudo

3)在文件底部填下如下内容

USERNAME ALL=NOPASSWD: PATH_TO_EXECUTABLE
  • 替换USERNAME为实际使用的账户(可使用whoami查询)
  • 替换PATH_TO_EXECUTABLE为第一步中获取到的路径

一个例子

garry ALL=NOPASSWD: /sbin/shutdown

2.执行命令

由于shutdown仍然是特权命令,因此仍然需要在命令开头加上sudo。

但是,指定用户执行该命令已不需要输入密码。

$ sudo shutdown -r now

*.对于喜欢冒险的人

可将以下内容放在sudoers文件的底部:

USERNAME ALL=NOPASSWD: ALL

上面的代码可以取消所有命令对于 sudo 的密码需求,请谨慎使用。

二、配置 SSH 无密码登陆

1. Hassio 主机生成用于免密登陆的密钥

HassioAdd-on Store中安装SSH server。注意,若 Hassio 是安装在 Ubuntu 系统中,不能使用 Ubuntu 的 SSH,必须连接到容器内部,启动 SSH server时请注意端口冲突问题。

密钥不能生成在默认目录,新建文件夹

$ mkdir /config/.ssh

创建 key

$ ssh-keygen -t rsa

储存位置输入

/config/.ssh/id_rsa

不要输入密码

2.被控端创建存储密钥的文件夹

若该文件夹已经存在,请跳到下一步

$ mkdir -p .ssh

3.将密钥传输到被控端

Hassio中执行以下命令

$ cat /config/.ssh/id_rsa | ssh UNIX_USERNAME@UNIX_IP 'cat >> .ssh/authorized_keys'

4.现在可以在Hassio免密登录Unix

$ ssh -i /config/.ssh/id_rsa UNIX_USERNAME@UNIX_IP

三、配置 Homeassistant

configuration.yaml中添加如下配置,网络唤醒部分请另行配置。

shell_command:
  unix_off: ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i /config/.ssh/id_rsa UNIX_USERNAME@UNIX_IP sudo /sbin/shutdown now
switch:
  - platform: wake_on_lan
    mac_address: "UNIX_MAC"
    host: UNIX_IP
    name: "unix"
    turn_off:
      service: shell_command.unix_off

四、参考:

1.How to run privileged (sudo) commands without the password
2.SSH login without password
3.Hass.io shell_command error


评分

参与人数 2金钱 +40 收起 理由
jyz_0501 + 20 厉害了word楼主!
+ 20 厉害了word楼主!

查看全部评分

回复

使用道具 举报

0

主题

8

帖子

108

积分

注册会员

Rank: 2

积分
108
金钱
100
HASS币
0
发表于 2024-9-1 21:51:24 | 显示全部楼层
一直255,看看为什么
回复

使用道具 举报

0

主题

22

帖子

210

积分

中级会员

Rank: 3Rank: 3

积分
210
金钱
188
HASS币
0
发表于 2024-8-7 11:19:25 | 显示全部楼层
谢谢大佬
回复

使用道具 举报

0

主题

28

帖子

175

积分

注册会员

Rank: 2

积分
175
金钱
147
HASS币
0
发表于 2024-8-2 15:46:30 | 显示全部楼层
学习一下!!!!!!!!!!!
回复

使用道具 举报

8

主题

144

帖子

784

积分

高级会员

Rank: 4

积分
784
金钱
640
HASS币
0
发表于 2024-5-30 14:45:15 | 显示全部楼层
$ cat /config/.ssh/id_rsa | ssh UNIX_USERNAME@UNIX_IP 'cat >> .ssh/authorized_keys'
这一步命令错了,$ cat /config/.ssh/id_rsa.pub | ssh UNIX_USERNAME@UNIX_IP 'cat >> .ssh/authorized_keys'
回复

使用道具 举报

1

主题

9

帖子

144

积分

注册会员

Rank: 2

积分
144
金钱
135
HASS币
0
发表于 2024-2-5 09:16:00 | 显示全部楼层
请问提示这个是什么原因 Service shell_command.unix_off called service switch.turn_off which was not found.
回复

使用道具 举报

0

主题

27

帖子

250

积分

中级会员

Rank: 3Rank: 3

积分
250
金钱
223
HASS币
0
发表于 2024-2-4 21:17:08 | 显示全部楼层
学习一下!!!!!!!!!!!
回复

使用道具 举报

1

主题

9

帖子

144

积分

注册会员

Rank: 2

积分
144
金钱
135
HASS币
0
发表于 2024-2-4 21:05:14 | 显示全部楼层
感谢分享
回复

使用道具 举报

0

主题

1

帖子

36

积分

新手上路

Rank: 1

积分
36
金钱
35
HASS币
0
发表于 2024-2-4 00:20:50 | 显示全部楼层
学习一下!!!!!!!!!!!
回复

使用道具 举报

1

主题

26

帖子

162

积分

注册会员

Rank: 2

积分
162
金钱
136
HASS币
0
发表于 2023-10-23 08:36:50 | 显示全部楼层
学一下,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 03:19 , Processed in 0.060312 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表