SSH z HA do innego hosta

Aby wykonać komendę poprzez ssh na zdalnym hoście korzystając z HA musisz zalogować się do HA po ssh:

i wykonać poniższe punkty:

  1. wygenerować klucze, w tym celu wydajesz polecenie:
    ssh-keygen -t rsa
    co spowoduje wygenerowanie pary kluczy (prywatny: id_rsa, publiczny: id_rsa.pub) w katalogu /root/.ssh/ (-> /data/.ssh)
  2. skopiować klucz publiczny na zdalny host - dodać klucz publiczny do authorized_keys, możesz skorzystać z bardzo pomocnego polecenia:
    ssh-copy-id uzytkownik@zdalny_host
    zalogowanie bedzie jeszcze wymagało podania hasła.
  3. zweryfikować czy wszystko zostało poprawnie skonfigurowane:
    ssh uzytkownik@zdalny_host
    zalogowałes się do zdalnego hosta bez podawania hasła, działa :slight_smile:, możesz wylogować się ze zdalnego_hosta poleceniem exit
  4. umieścić klucze w dostępnym dla HA katalogu, w tym celu tworzysz katalog np. /config/.ssh:
    mkdir /config/.ssh
    i tam kopiujesz klucze:
    cp /data/.ssh/id_rsa* /config/.ssh/
  5. po raz kolejny zweryfikować czy konfiguracja jest poprawna:
    ssh -i /config/.ssh/id_rsa uzytkownik@zdalny_host polecenie_do_wykonania
    zalogowałes się po raz kolejny do zdalnego hosta bez podawania hasła i wykonałes komendę poprzez ssh na zdalnym hoście, działa :slight_smile:.

Dopiero po poprawnym wykonaniu powyższych punktów możesz to samo zrobić korzystając z HA, w tym celu musisz:

  • dodać do konfiguracji HA polecenie jakie chcesz wykonać na zdalnym przy pomocy shell_command:

    # Example configuration.yaml entry
    # Exposes service shell_command.host_komenda
    shell_command:
      host_komenda: ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no uzytkownik@zdalny_host polecenie_do_wykonania  
    
  • po restarcie HA będziesz miał dostępną nową usługę :

    image

    którą możesz wykorzystać w automatyzacjach.

Wykonywane komendy po ssh możesz także wykorzystać w konfiguracji switch, szczegóły w dokumentacji https://www.home-assistant.io/integrations/switch.command_line/

Dokładne wytlumaczenie co się dzieje w pkt 1 i 2 znajdziesz na stronie https://kb.iu.edu/d/aews.

Jeżeli coś jest nie jasne, proszę o komentarze, instrukcja zostanie uzupełniona i poprawiona.