Advertisement
finity69x2

Home Assistant Installation using Docker on NUC in Debian 9

Jan 31st, 2019
2,914
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.38 KB | None | 0 0
  1. NUC installation using Docker:
  2.  
  3. Throughout this procedure you'll need to add your personal details to different sections. Replace anything that has anything between "<...>" or where it says "your" in it.
  4.  
  5. Install Debian 9 Desktop:
  6.  
  7. use win32diskimager to create a live cd on USB stick
  8.  
  9. If needed, follow the instructions for UEFI boot repair from:
  10.  
  11. https://arstechnica.com/gadgets/2014/02/linux-on-the-nuc-using-ubuntu-mint-fedora-and-the-steamos-beta/
  12.  
  13. install from USB live but don’t reboot.
  14.  
  15. Open terminal and the do the following:
  16.  
  17. $ sudo mount /dev/sda1 /mnt
  18. $ sudo mkdir /mnt/EFI/BOOT
  19. $ sudo cp /mnt/EFI/ubuntu/* /mnt/EFI/BOOT
  20. $ sudo mv /mnt/EFI/BOOT/grubx64.efi /mnt/EFI/BOOT/bootx64.efi
  21.  
  22. - reboot
  23.  
  24. Add user to sudoers file:
  25.  
  26. $ su
  27.  
  28. Enter root password
  29.  
  30. $ adduser <username> sudo
  31. $ exit
  32.  
  33. - reboot
  34.  
  35. install openssh-server from command line:
  36.  
  37. $ sudo apt-get install openssh-server
  38.  
  39. Install curl:
  40.  
  41. $ sudo apt install curl
  42.  
  43. Install git:
  44.  
  45. $ sudo apt-get update
  46. $ sudo apt-get upgrade
  47. $ sudo apt-get install git
  48.  
  49.  
  50. Setup a static IP
  51.  
  52. $ sudo nano /etc/dhcpcd.conf
  53.  
  54. Edit /etc/dhcpcd.conf as follows:
  55.  
  56. #here is an example which configures a static address, routes and dns.
  57. interface eth0
  58. static ip_address=192.168.1.11/24
  59. static routers=192.168.1.1
  60. static domain_name_servers=192.168.1.1 8.8.8.8
  61.  
  62. save & reboot
  63.  
  64. install Putty on the computer you will use to remotely access your Home Assistant machine
  65.  
  66. Set up a Key for encrypting SSH:
  67.  
  68. Generate key using puttygen
  69.  
  70. Create a new .ssh directory (if not already created by default…)
  71.  
  72. $ mkdir .ssh
  73.  
  74. Change permissions on .ssh to 700 (if not done by default…)
  75.  
  76. $ chmod 700 .ssh
  77.  
  78. Create a file called “authorized_keys” using nano
  79.  
  80. $ nano ~/.ssh/authorized_keys
  81.  
  82.  
  83. Copy & paste the key from puttygen into that file.
  84.  
  85. - Save file
  86.  
  87. Change permissions of “authorized_keys” to 600
  88.  
  89. $ chmod 600 ~/.ssh/authorized_keys
  90.  
  91. Restart SSH service
  92.  
  93. $ sudo service ssh restart
  94.  
  95. Exit putty session
  96.  
  97. Run Putty but don't connect then open saved session info & add key to “auth” under SSH
  98.  
  99. Change ssh to not allow password login
  100.  
  101. $ sudo nano /etc/ssh/sshd_config
  102.  
  103. Add the following line
  104.  
  105. PasswordAuthentication no
  106.  
  107. - Save
  108.  
  109. Restart ssh service
  110.  
  111. $ sudo service ssh restart
  112.  
  113. Get rid of iv6
  114.  
  115. $ sudo nano /etc/sysctl.conf
  116.  
  117. Add:
  118.  
  119. net.ipv6.conf.all.disable_ipv6=1
  120.  
  121. - Save file
  122.  
  123. Commit changes
  124.  
  125. $ sudo sysctl -p
  126.  
  127.  
  128.  
  129. Install & setup WinSCP on the computer you plan to use to remotely edit your configuration files:
  130.  
  131. Give WinSCP the ability to edit files:
  132.  
  133. Select SCP/Shell under Environment
  134. Select profile.
  135. Select edit.
  136. Select advanced.
  137. Under Shell on the left select “bin/bash“
  138.  
  139. After authorized keys from above is complete:
  140.  
  141. Select profile.
  142. Select edit.
  143. Select advanced.
  144. Select Authentication under SSH on the left
  145. Enter location of private key you saved from Puttygen above
  146.  
  147.  
  148.  
  149. Setup duckdns
  150.  
  151. create a dynamic dns name (using duckdns.org)
  152.  
  153. yourdomain.duckdns.org
  154. yourdomain2.duckdns.org (not required)
  155. token = xxxxxxxxxxxxxxxxxxxxxxxxxxx
  156.  
  157. install duckdns
  158.  
  159. $ mkdir duckdns
  160. $ cd duckdns
  161. $ nano duck.sh
  162.  
  163. create an update script by entering the following:
  164.  
  165. echo url="https://www.duckdns.org/update?domains=yourdomain,yourdomain2&token=xxxxxxxxxxxxx" | curl -k -o ~/duckdns/duck.log -K -
  166.  
  167. - save file
  168.  
  169. change permissions on file
  170.  
  171. $ sudo chmod 700 duck.sh
  172.  
  173. set it to update the public ip every 5 minutes
  174.  
  175. $ sudo crontab -e
  176.  
  177. Pick default editor (selection 1)
  178.  
  179. Add line:
  180.  
  181. */5 * * * * ~/duckdns/duck.sh >/dev/null 2>&1
  182.  
  183. - Save file
  184.  
  185. Test the file
  186.  
  187. $ ./duck.sh
  188. $ cat duck.log
  189.  
  190. Should see ‘OK’
  191.  
  192.  
  193. Install Docker
  194.  
  195. https://docs.docker.com/install/linux/docker-ce/debian/#install-docker-ce-1
  196.  
  197. $ sudo apt-get install \
  198. apt-transport-https \
  199. ca-certificates \
  200. curl \
  201. gnupg2 \
  202. software-properties-common
  203.  
  204. $ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add –
  205. $ sudo apt-key fingerprint 0EBFCD88
  206. $ sudo add-apt-repository \
  207. "deb [arch=amd64] https://download.docker.com/linux/debian \
  208. $(lsb_release -cs) \
  209. stable"
  210.  
  211. $ sudo apt-get update
  212. $ sudo apt-get install docker-ce
  213.  
  214.  
  215. To test docker installed correctly:
  216.  
  217. $ sudo docker run hello-world
  218.  
  219. To update docker:
  220.  
  221. $ sudo apt-get update
  222. $ sudo apt-get install docker-ce
  223.  
  224.  
  225. Install Docker Images
  226.  
  227. Homeassistant:
  228.  
  229. Create a new config directory:
  230.  
  231. /home/<username>/docker/hass-config (or wherever you want it but you will need to adjust the paths below accordingly)
  232.  
  233. Create and run a new home assistant container:
  234.  
  235. $ sudo docker run -d --name="home-assistant" --restart=unless-stopped -v /home/<username>/docker/hass-config:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/home-assistant
  236.  
  237. The above will create the basic config files at the config directory. Copy existing config files to that directory & restart the container.
  238.  
  239. The above will only create an installation of HA without the access to the zigbee and z wave devices.
  240.  
  241. If you already have an existing zwave or zigbee install on another HA then copy the options.xml & ozw config xml files to the config directory
  242.  
  243. To get access to the USB devices run the following:
  244.  
  245. $ sudo docker run -d --name="home-assistant" --restart=unless-stopped -v /home/<username>/docker/hass-config:/config -v /etc/localtime:/etc/localtime:ro --device /dev/zigbee:/dev/zigbee --device /dev/ttyUSB-ZStick-5G:/dev/ttyUSB-ZStick-5G --net=host homeassistant/home-assistant
  246.  
  247. The above will work when you modify the /etc/udev/rules.d/99-com.rules file to make the zigbee & zwave USB sticks persistent.
  248.  
  249. For the Aeotec Zwave Gen 5 USB stick add this to the end of above udev file:
  250.  
  251. SUBSYSTEM=="tty", ATTRS{idVendor}=="0658", ATTRS{idProduct}=="0200", SYMLINK+="ttyUSB-ZStick-5G"
  252.  
  253. If you want to use the HUSBZB-1 Zigbee stick add the following to that same file:
  254.  
  255. SUBSYSTEM=="tty", ATTRS{interface}=="HubZ ZigBee Com Port", SYMLINK+="zigbee"
  256.  
  257. One problem using Docker is that you can't run shell commands on the host machine from within the Home Assistant container.
  258. To be able to do that you need to see the section below to set it up. Then come here and run the new docker command to enable that functionality:
  259.  
  260. $ sudo docker run -d --name="home-assistant" --restart=unless-stopped -v /home/<username>/docker/hass-config:/config -v /etc/localtime:/etc/localtime:ro -v /home/finity/docker/sshkey/.ssh:/root/.ssh --device /dev/zigbee:/dev/zigbee --device /dev/ttyUSB-ZStick-5G:/dev/ttyUSB-ZStick-5G --net=host homeassistant/home-assistant
  261.  
  262.  
  263. To install a specific version of Home Assistant add
  264.  
  265. :0.xx.x
  266.  
  267. To the end of the image name
  268.  
  269. ##########################################################
  270.  
  271. these containers are all optional but are useful:
  272.  
  273. Portainer:
  274.  
  275. https://portainer.readthedocs.io/en/stable/deployment.html#quick-start
  276.  
  277. $ sudo docker run --name portainer -d -p 9001:9000 --restart=unless-stopped -v /var/run/docker.sock:/var/run/docker.sock -v /opt/portainer:/data portainer/portainer
  278.  
  279. user: admin
  280. pass: net
  281.  
  282. create a new user & password
  283.  
  284. -------------
  285.  
  286. NGINX/Letsencrypt:
  287.  
  288.  
  289. From: https://community.home-assistant.io/t/nginx-reverse-proxy-set-up-guide-docker/54802
  290.  
  291.  
  292. Get uid & gid:
  293.  
  294. $ id <username>
  295.  
  296. Create config directory
  297.  
  298. $ mkdir /home/<username>/docker/letsencrypt/config
  299.  
  300. Forward ports 80 & 443 to your NGINX machine.
  301.  
  302. Run the docker container:
  303.  
  304. $ sudo docker run -d --cap-add=NET_ADMIN --name=letsencrypt --restart=unless-stopped -v /home/<username>/docker/letsencrypt/config:/config -v /etc/localtime:/etc/localtime:ro -e PGID=1000 -e PUID=1000 -e EMAIL=<youremail@address.com> -e URL=yourdomain.duckdns.org -e SUBDOMAINS=hass,conf,graf -e VALIDATION=http -p 80:80 -p 443:443 -e TZ=<your timezone> linuxserver/letsencrypt
  305.  
  306. Once you run the container, you’ll need to edit (DON’T RENAME THE OLD DEFAUALT FILE TO SOMETHING ELSE – IT WILL MESS IT UP) the default file at:
  307.  
  308. home/<username>/docker/letsencrypt/config/nginx/site-confs/default
  309.  
  310. Make sure you comment out the following lines in the server blocks.
  311.  
  312. auth_basic "Restricted"#;
  313. auth_basic_user_file /config/nginx/.htpasswd;
  314.  
  315. These lines will enforce password protection from Nginx and when you try to login you will not be able. You may need to activate this for some component. For instance the configurator component, for some reason will no longer follow its settings file and once live you’ll be able to access it without password. So you’ll need to create an Nginx user:password with this command: docker exec -it letsencrypt htpasswd -c /config/nginx/.htpasswd .
  316.  
  317. Default config file:
  318.  
  319. ###########################################
  320. ## Version 2018/04/20 - Changelog: https://github.com/linuxserver/docker-letsencrypt/commits/master/root/defaults/default
  321.  
  322. # listening on port 80 disabled by default, remove the "#" signs to enable
  323. # redirect all traffic to https
  324. #server {
  325. # listen 80;
  326. # server_name _;
  327. # return 301 https://$host$request_uri;
  328. #}
  329.  
  330. # main server block
  331. server {
  332. listen 443 ssl default_server;
  333.  
  334. root /config/www;
  335. index index.html index.htm index.php;
  336.  
  337. server_name yourdomain.duckdns.org;
  338.  
  339. # enable subfolder method reverse proxy confs
  340. include /config/nginx/proxy-confs/*.subfolder.conf;
  341.  
  342. # all ssl related config moved to ssl.conf
  343. include /config/nginx/ssl.conf;
  344.  
  345. client_max_body_size 0;
  346.  
  347. location / {
  348. try_files $uri $uri/ /index.html /index.php?$args =404;
  349. }
  350.  
  351. location ~ \.php$ {
  352. fastcgi_split_path_info ^(.+\.php)(/.+)$;
  353. # With php7-cgi alone:
  354. fastcgi_pass <yourmachine IP>:9000;
  355. # With php7-fpm:
  356. #fastcgi_pass unix:/var/run/php7-fpm.sock;
  357. fastcgi_index index.php;
  358. include /etc/nginx/fastcgi_params;
  359. }
  360.  
  361. # sample reverse proxy config for password protected couchpotato running at IP 192.168.1.50 port 5050 with base url "cp"
  362. # notice this is within the same server block as the base
  363. # don't forget to generate the .htpasswd file as described on docker hub
  364. # location ^~ /cp {
  365. # auth_basic "Restricted";
  366. # auth_basic_user_file /config/nginx/.htpasswd;
  367. # include /config/nginx/proxy.conf;
  368. # proxy_pass http://192.168.1.50:5050/cp;
  369. # }
  370.  
  371. }
  372.  
  373. # sample reverse proxy config without url base, but as a subdomain "cp", ip and port same as above
  374. # notice this is a new server block, you need a new server block for each subdomain
  375. #server {
  376. # listen 443 ssl;
  377. #
  378. # root /config/www;
  379. # index index.html index.htm index.php;
  380. #
  381. # server_name cp.*;
  382. #
  383. # include /config/nginx/ssl.conf;
  384. #
  385. # client_max_body_size 0;
  386. #
  387. # location / {
  388. # auth_basic "Restricted";
  389. # auth_basic_user_file /config/nginx/.htpasswd;
  390. # include /config/nginx/proxy.conf;
  391. # proxy_pass http://192.168.1.50:5050;
  392. # }
  393. #}
  394.  
  395. ### HOMEASSISTANT ####
  396.  
  397. server {
  398. listen 443 ssl;
  399.  
  400. root /config/www;
  401. index index.html index.htm index.php;
  402.  
  403. server_name hass.<username>.duckdns.org;
  404.  
  405. include /config/nginx/ssl.conf;
  406.  
  407. client_max_body_size 0;
  408.  
  409. location / {
  410. # auth_basic "Restricted";
  411. # auth_basic_user_file /config/nginx/.htpasswd;
  412. proxy_set_header Host $host;
  413. proxy_redirect http:// https://;
  414. proxy_http_version 1.1;
  415. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  416. proxy_set_header Upgrade $http_upgrade;
  417. proxy_set_header Connection "upgrade";
  418. proxy_buffering off;
  419. proxy_ssl_verify off;
  420. # include /config/nginx/proxy.conf;
  421. proxy_pass http://192.168.1.11:8123;
  422. }
  423. }
  424.  
  425. ### CONFIGURATOR ###
  426. #
  427. #server {
  428. # listen 443 ssl;
  429. #
  430. # root /config/www;
  431. # index index.html index.htm index.php;
  432. #
  433. # server_name conf.bussnet.duckdns.org;
  434. #
  435. # include /config/nginx/ssl.conf;
  436. #
  437. # client_max_body_size 0;
  438. #
  439. # location / {
  440. # auth_basic "Restricted";
  441. # auth_basic_user_file /config/nginx/.htpasswd;
  442. # include /config/nginx/proxy.conf;
  443. # proxy_pass http://192.168.1.11:3218;
  444. # }
  445. #}
  446.  
  447. ### GRAFANA ###
  448. #
  449. #server {
  450. # listen 443 ssl;
  451. #
  452. # root /config/www;
  453. # index index.html index.htm index.php;
  454. #
  455. # server_name graf.xxxxxxx.duckdns.org;
  456. #
  457. # include /config/nginx/ssl.conf;
  458. #
  459. # client_max_body_size 0;
  460. #
  461. # location / {
  462. ## auth_basic "Restricted";
  463. ## auth_basic_user_file /config/nginx/.htpasswd;
  464. # include /config/nginx/proxy.conf;
  465. # proxy_pass http://192.168.1.11:3003;
  466. # }
  467. #}
  468.  
  469. # enable subdomain method reverse proxy confs
  470. include /config/nginx/proxy-confs/*.subdomain.conf;
  471.  
  472.  
  473. -----------------------------------------
  474.  
  475.  
  476. Synchthing:
  477.  
  478. $ sudo docker create --name=syncthing --restart=unless-stopped -v /home/<username>/docker/syncthing/config:/config -v /home/<username>/docker/hass-config:/hass-sync -v /etc/localtime:/etc/localtime:ro -e PGID=1000 -e PUID=1000 -e UMASK_SET=000 -p 8384:8384 -p 22000:22000 -p 21027:21027/udp linuxserver/syncthing
  479.  
  480. Install Syncthing on the other computer.
  481.  
  482. Create a new folder named /hass-sync and share it
  483.  
  484. -------------------------------
  485.  
  486. Ha-dockermon:
  487.  
  488. $ sudo docker run -d --name=ha-dockermon --restart=unless-stopped -v /var/run/docker.sock:/var/run/docker.sock -v /home/<username>/docker/ha-dockermon:/config -p 8126:8126 philhawthorne/ha-dockermon
  489.  
  490. --------------------------------
  491.  
  492. MQTT:
  493.  
  494. $ sudo docker run -itd --name=eclipse-mosquitto -p 1884:1883 -p 9002:9001 -v /home/<username>/docker/mqtt/config/mosquitto.conf:/mosquitto/config/mosquitto.conf -v /home/<username>/docker/mqtt/config/passwd:/mosquitto/config/passwd -v /home/<username>/docker/mqtt/data:/mosquitto/data -v /home/<username>/docker/mqtt/log:/mosquitto/log -e PGID=1000 -e PUID=1000 -e UMASK_SET=000 eclipse-mosquitto
  495.  
  496. Download the default mosquitto.conf file from:
  497.  
  498. https://raw.githubusercontent.com/eclipse/mosquitto/master/mosquitto.conf
  499.  
  500.  
  501. and edit as necessary. Change the persistence info and logging.
  502.  
  503.  
  504. Give those files full permissions using:
  505.  
  506. $ sudo chmod 777 -R /home/<username>/docker/mqtt/
  507.  
  508.  
  509. Then enter the shell of the container by:
  510.  
  511. $ sudo docker exec -it eclipse-mosquitto sh
  512.  
  513. Create a username and password:
  514.  
  515. / # mosquitto_passwd -c /mosquitto/config/passwd/pwfile <mqtt username>
  516.  
  517. Once it goes to the next line just type in the password (there won’t be a prompt until after you hit enter)
  518. Re-enter password
  519.  
  520. / # exit
  521.  
  522. --------------------------------
  523.  
  524. OZWCP:
  525.  
  526.  
  527. for the zwcfg... file you will need to find out the correct file name from your config folder.
  528.  
  529. https://github.com/ruimarinho/docker-openzwave
  530.  
  531. $ sudo docker create --name openzwave -itd -p 8090:8090 --device=/dev/ttyUSB-ZStick-5G -v /home/<username>/docker/hass-config/options.xml:/root/open-zwave-control-panel/config/options.xml -v /home/<username>/docker/hass-config/zwcfg_0xecbef344.xml:/root/open-zwave-control-panel/zwcfg_0xecbef344.xml ruimarinho/openzwave
  532.  
  533. How to use this image:
  534. To launch the OpenZWave Control Panel, you should add a device map to your Z-Wave Controller and map the server port (by default 8090).
  535. In this example, the USB Z-Wave Controller is available on the host under /dev/ttyACM0, but the USB device enumeration varies from host and OS (another popular nomenclature is /dev/ttyUSB*).
  536.  
  537. ❯ docker run --rm -it -p 8090:8090 --device=/dev/ttyACM0 ruimarinho/openzwave
  538.  
  539. Now go to http://127.0.0.1:8090 and enter /dev/ttyACM0 under Device name. Click on Initialize to boot the network and that's it.
  540.  
  541. Integration with Home Assistant:
  542. As mentioned below, you can also share the zwcfg_0x_<HomeId>.xml and options.xml file between applications on the host. The following is an example of sharing the Z-Wave network configuration with the popular Home Assistant home automation software, available under /volume1/applications/home-assistant/.
  543.  
  544. First, stop Home Assistant. Assuming you've used --name home-assistant when launching the container (otherwise you need to grab its container id), run:
  545. ❯ docker stop home-assistant
  546.  
  547. Launch the OpenZWave Control Panel:
  548. ❯ docker run --name openzwave --rm -it -p 8090:8090 \
  549. --device=/dev/ttyACM0 \
  550. -v /volume1/applications/home-assistant/options.xml:/root/open-zwave-control-panel/config/options.xml \
  551. -v /volume1/applications/home-assistant/zwcfg_0x00001111.xml:/root/open-zwave-control-panel/zwcfg_0x00001111.xml \
  552. ruimarinho/openzwave
  553.  
  554. Run all the desired operations on the OpenZWave Control Panel and don't forget to hit Save if you've changed something.
  555. When you're done, stop the OpenZWave Control Panel and launch Home Assistant again:
  556. ❯ docker stop openzwave && docker start home-assistant
  557.  
  558. Done!
  559.  
  560. --------------------------------
  561.  
  562. TasmoAdmin:
  563.  
  564. $ sudo docker run -d --name tasmoadmin --restart=unless-stopped -v /home/<username>/docker/tasmoadmin/data:/data -p 9003:80 raymondmm/tasmoadmin
  565.  
  566.  
  567. The url is http://<your_host_ip>:9003 which opens TasmoAdmin.
  568.  
  569.  
  570. --------------------------------
  571.  
  572. Zigbee2MQTT:
  573.  
  574. https://github.com/Koenkk/zigbee2mqtt
  575.  
  576. $ sudo docker run -itd --name="zigbee2mqtt" --restart=unless-stopped -v /etc/localtime:/etc/localtime:ro --net=host -v /home/<username>/docker/zigbee2mqtt/data:/app/data --device=/dev/Zigbee2MQTT koenkk/zigbee2mqtt
  577.  
  578. ---------------------------------
  579.  
  580. Amazon-Dash:
  581.  
  582. https://github.com/Nekmo/amazon-dash
  583.  
  584. $ sudo docker pull nekmo/amazon-dash:latest
  585.  
  586. $ sudo docker run -itd --network=host --name="amazon-dash" --restart=unless-stopped -v /home/<username>/docker/amazon-dash/amazon-dash.yml:/config/amazon-dash.yml nekmo/amazon-dash:latest amazon-dash run --ignore-perms --root-allowed --config /config/amazon-dash.yml
  587.  
  588. ###########################################
  589.  
  590. Add ability to use command line in docker container:
  591.  
  592. https://hastebin.com/sojasolite.sql
  593.  
  594. 1-Need to modify the host user privileges to skip typing your password with sudo
  595. sudo visudo
  596. hostuser ALL=(ALL) NOPASSWD:ALL
  597.  
  598. 2-create the following directory:
  599. $ mkdir /home/<username>/docker/sshkey/.ssh
  600.  
  601. Then mount this volume in HA container to preserve the sshkey generated from the HA container and used to execute shell commands. Key will then persist through reboot or upgrades.
  602. -v /home/hass/<username>/sshkey/.ssh:/root/.ssh
  603.  
  604. 3-login to container via portainer or
  605.  
  606. $ sudo docker exec -it home-assistant /bin/bash
  607.  
  608. 4-generate sshkey. - https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2
  609. $ ssh-keygen -t rsa (press enter, enter, enter)
  610.  
  611. 5-copy the sshkey to your host ***
  612. $ ssh-copy-id hostuser@192.168.x.x (type password when prompted)
  613.  
  614. *** this won’t work if you have an existing authorized_keys file. You have to copy the key manually into the file. Put one key per line with no lines between them.
  615.  
  616.  
  617. MI45fiHjJAeyCxH//eSFrI9Mzi2NR9njQTAW5YviSmvetYjuCTLHSTVOFycgiHR34Tfn2LUSOALQ7zUvq8yXseVFI7OHC5X07zPnbvQw28UMAlmhego6rOZ3exQKobORwqYpk7xVRj5FNr4vnff2/u7SWsZRlQylUBa4ZKK+W1TPEc7knXPl8cesh3YJ+J62ncCiNVgzSgQ7qjMmrRnuLkB3DNKPs1BIlC6t3x0abMotSgom0WZIGGGIR3MIouFp root@NUC
  618.  
  619. additional info from:
  620.  
  621. https://megamorphf.github.io/homeassistant/hyperion/ssh/hassio/2018/01/22/controlling-anything-via-ssh.html
  622.  
  623. https://www.cyberciti.biz/tips/linux-multiple-ssh-key-based-authentication.html
  624.  
  625. https://wiki.mcs.anl.gov/IT/index.php/SSH_Keys:authorized_keys
  626. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement