HAOS accès SSH (sans root)

Noyé dans un océan de doutes

HAOS accès SSH (sans root)

La problématique est simple !

Comment accéder en SSH à notre Home-Assistant alors que celui-ci est présentement installé en tant que Machine Virtuelle (VM) au sein de Promox ?!

Pourquoi ? Eh ben… mh…
En premier lieu c’était pour un besoin d’accès en SFTP (donc FTP sécurisé).

Et puis comme ça on obtiendra un accès complet sans avoir recourt ni à l’utilisateur root ni à un pauvre mot de passe mal sécurisé.


Je me suis largement inspiré de cette vidéo ci-dessus et j’apporte ci-dessous mon complément d’informations car il y a quelques points qui méritent d’être précisés.

L’addon

Nom : Advanced SSH & Web Terminal
Page officiel
: https://github.com/hassio-addons/addon-ssh

Addon Advanced SSH & Web Terminal

  • Installez là et ne la démarrez pas tout de suite (ça ne servirait à rien puisque la configuration n’est pas encore bonne).

Configuration

Username

Au départ, vous avez peu ou prou quelque chose comme ceci :

Configuration de l'addon

    username: mon_super_user
password: ""
authorized_keys: []
sftp: false
compatibility_mode: false
allow_agent_forwarding: false
allow_remote_port_forwarding: false
allow_tcp_forwarding: false   
            
                    
        

Avertissement

SURTOUT, il n’est pas recommandé de remplacer le « username » par « root« .
TOUT sauf CA ! C’est une question élémentaire de sécurité.

  • Vous avez pour le moment juste le droit (optionnel) de changer le username à votre guise.
    Notez-le.

Génération de clé SSH

Nous allons avoir besoin de générer un paire de clés SSH et pour ce faire, nous allons avoir besoin du terminal de Windows. Le mécanisme utilise OpenSSH.
Nous aurions sans doute pu le faire via PuTTY mais au moins là il n’y a pas besoin de logiciels tierce.

  • Ouvrez un fenêtre PowerShell (mode administrateur) ou faite Win + X > Terminal (Administrateur)
  • La commande est :

Terminal - PowerShell

    ssh-keygen -t rsa -b 4096   
            
                    
        

Cela va générer un clé bien plus complexe et donc plus sécurisé que l’option ssh-keygen seule par défaut.
(Plus d’informations)

Vous devriez voir apparaitre quelque chose comme :

    Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\Gotcha/.ssh/id_rsa):   
            
                    
        

J’ai laissé volontairement le dossier et le nom du fichier par défaut mais sachez qu’il est possible de personnaliser (voir en fin d’article dans les liens utiles).

  • Vous avez juste à appuyer sur la touche <Entrée>

A présent, une nouvelle ligne apparait :

    Enter passphrase (empty for no passphrase):   
            
                    
        

Késako ? Un mécanisme supplémentaire de protection visant à faire rajouter un mot de passe qui vous sera demandé lors de l’utilisation de la clé SSH.

Personnellement, c’est trop complexe et je m’en tiens à ne pas utiliser le passphrase.

  • Validez (par deux fois pour la confirmation) sans rien avoir saisi.

Une fois réussie, vous obtenez quelque chose de semblable à :

    Your identification has been saved in C:\Users\Gotcha/.ssh/id_rsa
Your public key has been saved in C:\Users\Gotcha/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:C1SQFsgaRtwlfodz20sCRtrTLGD2Hn3VwEe42f8XP50 gotcha@PC-Fixe
The key's randomart image is:
+---[RSA 4096]----+
|+=**.=oµo= ..   o|
|=*+.B ..= .  o .o|
|+ o*.-o.      o +|
| oo *.+. .     .E|
|   o = +S        |
|    . o +        |
|       L .       |
|        i        |
|        .        |
+----[SHA256]-----+
PS C:\Users\Gotcha>   
            
                    
        

Cette empreinte numérique (que j’ai modifié pour l’exemple) est calculée en fonction du matériel qui compose votre poste information et aussi d’autres éléments numériques.
Cette clé est donc comme une fiche d’identité.

Les fichiers se trouvent ainsi dans : C:\Users\Gotcha\.ssh

    • id_rsa
    • id_rsa.pub
✍️ Alors NON le fichier .pub n’est aucunement un fichier Microsoft Publisher !
 
  • Faites un clic droit puis modifier le fichier id_rsa.pub avec un bloc-note.
  • Copier-coller tout le contenu.

On insert sa clé SSH

  • De retour dans le panneau de configuration de l’addon, on saisie le contenu de sa clé SSH précédemment copié.

Attention à la mise en forme !

Pour vous aider, voici comment cela doit être présenté :

Configuration de l'addon

    username: haos_user
password: ""
authorized_keys:
  - >-
    ssh-rsa
    c2EAAAADAQABAAACAQC5iV5PUOqg/sRsF4jB3YztNi1KUkqb3jeLXil8aYiGB/BDkajK1b4G6O8s6NTjjtjD9wrzD/Xy/N3w9flQa9TWRt2N/XprScyDQvAcLVdcwOk1+vVv49UNRDm5ywEpZRlU7/wdYua0TwkMHAmprbd8kIx0sdAWcOZzL6ny7a5/
	+Loh+1N+xOjz3JsKoyCYxgYff9rTws9jSfogTe5sLNbNc39TecQD/PIu7Bflnqsn+QFlkblRPrS4Xk2buVMR+1JSYL74Pke=
    gotcha@PC-Fixe
sftp: false
compatibility_mode: false
allow_agent_forwarding: false
allow_remote_port_forwarding: false
allow_tcp_forwarding: false
   
            
                    
        
  • Ne reste plus qu’à enregistrer cette nouvelle configuration.

Terminal SSH interne (Home-Assistant)

  • A présent, il est temps de démarrer l’addon.
    • Soit via le raccourcis depuis la barre latérale que vous pouvez rajouter (option)
    • Soit en cliquant sur le bouton « OUVRIR L’INTERFACE UTILISATEUR WEB »
  • Vous devriez voir la même chose que ce qui s’affiche dans la console Shell de votre Machine Virtuelle !
  • Saisissez simplement la commande suivante : ls -la

YOUPI !! Tout fonctionne et l’interface accepte le clavier Français AZERTY en prime !

Précision

La connexion SSH que nous allons mettre en place ici ne fonctionne QUE si le l’addon est démarrée.

Connexion SSH depuis Windows

Maintenant que via notre VM tout fonctionne, nous allons faire de même coté Windows.

De retour sur la fenêtre de terminal (Administrateur) nous allons saisir la commande :

Terminal - PowerShell

    ssh -m &#104;&#109;&#97;&#99;-&#115;ha2&#45;&#53;&#49;2-e&#116;m&#64;&#111;&#112;&#101;nssh&#46;c&#111;m haos_user@192.168.0.100   
            
                    
        

A vous d’adapter le nom de l’utilisateur que vous avez renseigné plus haut, ainsi que l’adresse IP de votre Home-Assistant.

👉 Cette commande est plus précise car sans ces précisions, cela ne fonctionnerait pas puisque nous avions défini un clé chiffrée plus sécurisée que par défaut.
 

Donc logiquement, vous observez le même prompt (écran noir quoi ^^) qu’observé via le terminal de l’addon.

  • Saisissez maintenant la même commande que plus haut à savoir : ls -la

Normalement, tout doit être identique !

✅ Vous savez donc maintenant vous connecter en SSH à travers un terminal Windows mais aussi via l’addon.

Raccourcis pour Windows

Saisir la longue instruction est un peu rébarbatif pour vous ?! Pas de soucis nous allons raccourcir ceci.

  • Ouvrez donc %systemdrive%%homepath%\.ssh (ce qui chez moi revient à C:\Users\Gotcha\.ssl)
  • Si le fichier config n’existe pas, créez-le puis éditez le comme suit :
    host ha
   HostName 192.168.0.100 #Adresse IP de votre home-assistant
   User mon_super_user #Pas de root SVP !
   IdentityFile ~/.ssh/id_rsa
   Macs h&#109;&#97;&#99;&#45;&#115;ha2-5&#49;&#50;-et&#109;&#64;op&#101;n&#115;s&#104;&#46;c&#111;&#109;   
            
                    
        

Donc maintenant vous n’aurez plus qu’à saisir tout simplement : ssh ha et c’est tout !

Accès SFTP (WinSCP)

Bah oui ! Puisque nous en sommes là, avoir un accès sécurisé à ses fichiers via le logiciel WinSCP c’est bien aussi !

Et le but ici c’est de ne pas dépendre d’un bête mot de passe. C’est simple certes mais nous venons de mettre en place votre clé d’identification SSH, alors nous allons nous en servir ici pour l’accès FTP sécurisé (SFTP).

  1. Ouvrez WinSCP et Cliquez sur « Nouvel Onglet« 
  2. Saisissez
    1. Protocole de fichiers SFTP
    2. Nom d’hôte 192.168.0.100
    3. Numéro de port 22
    4. Nom d’utilisateur mon_super_user
    5. Mot de passe <vide>
  3. Cliquez ensuite sur « Avancé... »
    1. Dans la section SSH > Authentification cochez l’option :
      Permettre l'utilisation d'agent de connexion
    2. Dans le champs « Fichier de clé privée » aller rechercher le fichier id_rsa
      Astuce : il faut afficher tous les fichiers !
    3. Vous serez averti que le fichier doit être converti au format PuTTY.
      Validez
    4. Enregistrez le fichier ainsi généré (.ppk)
      Validez
    5. Dans le champs juste en dessous qui vient d’apparaître :
      Sélectionnez le fichier id_rsa.pub
    6. Validez l’ensemble.
  4. De retour sur le panneau de « Login », cliquez sur « Sauver...« 
  5. Puis… « Connexion« 
  6. 🔊 TADAAAAAA
 
📢 J’ai repris mon exemple depuis le début avec les dossiers d’origine. A vous d’adapter si c’est différent chez vous.

Tags: , , , ,

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *