zhenxiwen 发表于 2021-1-2 17:42:47

hassos取得最高root权限更简单的方法及winscp登录问题

本帖最后由 zhenxiwen 于 2021-1-2 22:07 编辑



补充说点背景知识和情况吧:


一、背景知识(这是我爬了官网E文document才知道的):

       原来的hassio系统,ssh用端口22 登录就取得了root的最高权限,你就可以用putty、xshell和winscp用root及密码通过22端口登录ha,然后对ha进行任何文件传输和编辑。

      但是,hassos做了一个很大的奇拔改变,把root权限变成两个层次:一个是,用22端口登录的用户层次,我们通过插件Terminal & SSH设置只能取得22端口登录权限,而在hassos系统中通过22端口登录实际上不是完全的root权限,登录后有许多系统文件夹和文件是被隐藏和看不到的,所以你也无法在其中传输文件和编辑里面的文件。

      另一个是,用22222端口登录,这是专门给开发者使用的端口,不能用密码登录,必须用密匙登录,用22222端口登录才是取得root的完全的最高权力,才能看见和编辑系统中所有的文件夹和文件。而要用22222登录就要生成密匙并导入到hassos系统中,然后才能用xshell、putty和winscp登录。(我用xshell登录成功,但用putty和winscp没能成功登录22222端口)。

参见官方的说明:https://developers.home-assistan ... g-system/debugging/

Debugging the Home Assistant Operating System


info
This section is not for end users. End users should use the SSH add-on to SSH into Home Assistant. This is for developers of Home Assistant. Do not ask for support if you are using these options.


SSH access to the host#

info
SSH access through the SSH add-on (which will give you SSH access through port 22) will not provide you with all the necessary privileges, and you will be asked for a username and password when typing the 'login' command. You need to follow the steps below, which will setup a separate SSH access through port 22222 with all necessary privileges.


Home Assistant Operating System#Use a USB drive formatted with FAT, ext4, or NTFS and name it CONFIG (case sensitive). Create an authorized_keys file (no extension) containing your public key, and place it in the root of the USB drive. File needs to be ANSI encoded (not UTF-8) and must have Unix line ends (LF), not Windows (CR LF). See Generating SSH Keys section below if you need help generating keys. From the UI, navigate to the Supervisor system page and choose "Import from USB". You can now access your device as root over SSH on port 22222. Alternatively, the file will be imported from the USB when the Home Assistant OS device is rebooted.


二、我的系统情况



参见我的帖子:终于成功:VM虚拟机安装UbuntuDesktop18.04+Docker+hassio!https://bbs.hassbian.com/thread-3879-1-1.html (出处: 『瀚思彼岸』» 智能家居技术论坛)


我一直是:在Gen8微服务器中,用Esxi6.7+Ubuntu Server18.04+Docker+Hassio。用hassio系统时,我一直用winscp通过22端口用root和密码登录ha,这就可以取得完全的最高root权限,就可以ha中全部文件夹和文件,并在pc与ha间传输文件和对ha所有文件进行编辑。
参见:yaml文件编辑以及PC与树莓派之间传输文件最快捷有效的方法 https://bbs.hassbian.com/thread-3114-1-1.html (出处: 『瀚思彼岸』» 智能家居技术论坛)




但是,我的hassio经常出问题,很不稳定,几个月前我转用hassos系统(也是在esxi中虚拟机安装的),我发现很稳定。


   但是,又是但是,我用winscp通过端口22登录root账户名后,发现许多文件夹是空的,包括addons文件夹也是空的,安装的addon不知在哪里,开始我以为是我对hassos的文件系统不了解,可是反复找都找不到一些我想找的文件夹和文件(包括安装的addon),后来搜索一通才发现hassos对root权限做了22和22222端口层次划分。


   为了用22222端口登录,我有折腾了好一通,始终无法通过usb导入公钥匙,最后自己试着用winscp通过端口22登录,直接把将authorized_keys文件拖到root/.ssh文件夹中,居然成功用xshell通过22222端口登录。可是,在winscp中仍然无法用密匙登录22222端口。


    用winscp登录ha,取得最高root权限对我很重要,因为我一直都是用winscp来传输和修改文件的。特别是,我的培正电表用tasmota接入非常不稳定,老出问题,我想用esphome接入,但esphome接入需要修改插件,可是我找来找去找不到esphome安装的文件夹,无法修改,后来折腾一通才知道用端口22登录是无法看到所安装的addon文件夹和文件的。才有了又一通折腾,用端口22222登录ha。




三、故事还没完




我一通折腾后,新重新折回去用hassio,但是,又是但是,升级到最新后,提示我用了不受支持的系统,有四个不支持的问题,需要按折腾:






https://www.home-assistant.io/more-info/unsupported/os





   

打开给我看了一下, Supervisor只支持下面两个系统,只维护这两个系统:


[*]Home Assistant OS
[*]Debian 10 (Buster)
其他系统的The solution很麻烦。


看来,用hassos才是未来的正道。
我看可能会有越来越多的小伙伴会转向hassos,也不可避免遇到用22222登录的问题。








按照官方的方法:https://developers.home-assistan ... g-system/debugging/,本论坛也有无敌小喵喵的帖子:hassos取得最高root权限教程(分享)https://bbs.hassbian.com/thread-10841-1-1.html (出处: 『瀚思彼岸』» 智能家居技术论坛)。

始终无法成功通过usb导入authorized_keys公钥匙,
我采取了下面土办法成功导入并可以通过xshell用22222端口访问hassos(我的系统是ESXi虚拟机安装hassos):


1、用xshell6生成公钥匙,并复制到记事本text中,修改文件名为authorized_keys(无后缀)。
2、用winscp用22端口root登录hassos,然后将authorized_keys文件拖到root/.ssh文件夹中。
3、然后用xshell6用22222端口,用密匙登录成功(见下图):



但是,我的目的是winscp用端口22222登录,winscp获得最高权限,可以浏览和修改用端口22登录无法看见的文件。

由于winscp不支持xshell生成的密匙,我用puttygen导入xshell生成的密匙并保存为后缀为.pp格式的密匙,再在winscp中用这个保持的密匙登录,却出现下面报错:跳过开始消息时出错。你的Shell可能与本程序不兼容(推荐使用Bash)。



搜全网找不到解决办法,请懂的大大指点。








neroxps 发表于 2021-1-2 18:35:35

装个 xshell 不行?

感觉进去了也干不了什么,啥都没有。

zhenxiwen 发表于 2021-1-2 18:39:11

neroxps 发表于 2021-1-2 18:35
装个 xshell 不行?

感觉进去了也干不了什么,啥都没有。

我有xshell,但xshell需要用命令,我不懂命令行。
winscp用22222端口登录后,取得最高root权限,可以看到用22端口登录无法显示的文件并对其进行修改。

neroxps 发表于 2021-1-2 18:59:29

zhenxiwen 发表于 2021-1-2 18:39
我有xshell,但xshell需要用命令,我不懂命令行。
winscp用22222端口登录后,取得最高root权限,可以看到 ...

你要传文件上去? 放到 share目录下然后mv 过去咯。

renlm 发表于 2021-1-2 19:43:32

好贴,学习

咸味土豆 发表于 2021-1-2 20:25:37

neroxps 发表于 2021-1-2 18:35
装个 xshell 不行?

感觉进去了也干不了什么,啥都没有。
我玩Hassos就没有ssh的需求,总感觉有这个需求的话为啥不直接debian+docker+hassio了...

zhenxiwen 发表于 2021-1-2 22:09:57

咸味土豆 发表于 2021-1-2 20:25
我玩Hassos就没有ssh的需求,总感觉有这个需求的话为啥不直接debian+docker+hassio了... ...

感谢土豆大神关注这个帖子,请看看我的补充说明。

zhenxiwen 发表于 2021-1-2 22:11:00

neroxps 发表于 2021-1-2 18:59
你要传文件上去? 放到 share目录下然后mv 过去咯。

感谢n大神,请看看我的补充说明。

咸味土豆 发表于 2021-1-2 23:47:58

zhenxiwen 发表于 2021-1-2 22:09
感谢土豆大神关注这个帖子,请看看我的补充说明。

啊,我是看你的帖子学到好多东西,就不要叫我大佬了,我这么说还是因为我现在也从debian系宿主(debian 或者ubuntu)+docker+hassio转到HassOS了,
第一是因为官方推荐,第二也是HA本身集成了功能,基本不再需要Debian的开放性的原因。
HA的集成+插件和集成本身也比较强大了,所以我说如果需要SSH的巴拉巴拉之类的... dedian+docker+hassio的组合,我玩的过程中、除了在快照里面看得见addon相关的配置,直接SMB访问好像也是看不见的(不排除特殊操作或者版本原因...因为我没有确实没有亲试),见谅。没回答你的问题偏了题,哈哈。

neroxps 发表于 2021-1-3 16:21:42

zhenxiwen 发表于 2021-1-2 22:11
感谢n大神,请看看我的补充说明。

他其实只在 debian下测试他的脚本,其他系统装 hassio 出问题让你别找他而已,官方没那么多精力适配你其他发行版的linux系统。

debian 和 ubuntu 其实是同源,他们没太大差异。

另外你提示健康问题是 docker 版本低于19 要升级。
页: [1] 2 3
查看完整版本: hassos取得最高root权限更简单的方法及winscp登录问题