📑 Correr script como sudo no hassio em raspassio

hassio

(Ricardo Silva) #1

Ola a todos,

Passei a ser um utilizador do RaspAssio (De Hassio para 'RaspAssio') e com isso senti a necessidade de correr script como sudo.
Sendo assim vou vos mostrar como o fazer.
Abrindo a consola do raspbian vamos digitar os seguintes comandos:

cd /usr/share/hassio/homeassistant
mkdir .ssh
ssh-keygen (ao escrever esse comando vai aparecer o seguinte e vamos colocar esse caminho):
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /usr/share/hassio/homeassistant/.ssh/id_rsa
Created directory '/usr/share/hassio/homeassistant/.ssh/id_rsa'.
Enter passphrase (empty for no passphrase): (aqui quando pede para inserir uma password, não vamos inserir e fazemos enter)

A partir daí na pasta /usr/share/hassio/homeassistant/.ssh/id_rsa devemos ter o seguinte:

Agora vamos ver como lançar o script como root:
Scripts:

reboot_raspberry:
  alias: Reboot Raspberry
  sequence:
    - alias: Reboot Raspberry
      service: shell_command.reboot_rasp

shell_command (aqui também podemos lançar um script em vez do comando reboot):

reboot_rasp: 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i .ssh/id_rsa root@ip.do.raspbian sudo reboot'
ou
script_test: 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i .ssh/id_rsa root@ip.do.raspbian sudo /usr/share/hassio/homeassistant/test.sh'

Temos que alterar também o ficheiro do ssh, para poder entrar como root por ssh:

nano /etc/ssh/sshd_config
e alterar a seguinte linha para isso:
PermitRootLogin yes

reiniciar o serviço: service sshd restart
Depois, fazer os seguintes comandos:

mkdir /root/.ssh
nano /root/.ssh/authorized_keys (e colar o conteúdo do ficheiro id_rsa.pub gerado anteriormente)

Pronto com isso já podem lançar script como root.


(Jorge Assunção) #2