je veux pouvoir me connecter en ssh de mon PC sur mon HAOS
avant j’avais un ssh peu configuré, ca marchait en user/mot de passe et basta.
je viens d’installer Advanced SSH & Web Terminal et il faut qu’il soit mieux sécurisé.
mais je n’ai jamais bossé avec des clés.
j’ai un poste sous windows 11 avec un répertoire ~.ssh avec un fichier known_hosts
et j’ai trouvé le répertoire /data/.ssh sur mon Raspberry Pi
j’ai les commandes ssh-keygen des deux cotés mais je suis paumé entre les clefs, publiques/privées, celles qu’on donne et celles qu’on garde…
comment établir la connexion du pc sur le linux ?
est ce que ca marchera encore après le prochain update HAOS ?
mes compétences date d’un temps où le user/password était roi, même sous Transpac
et par là même , comment je paramètre la glute à Frenk ?
Lorsque tu crée un paire de clé celle que tu gardes c’est la clé privée (d’où son nom) et celle que tu pose sur les serveur pour t’autoriser c’est la clé publique (toujours assez logique)
Donc tu copies ta clé publique dans le fichier authorized_keys quinze trouves la plupart du temps dans /home/USER/.ssh (ou /root/.ssh/ pour root) ce fichier doit être uniquement lisible par l’utilisateur (chmod 600)
Après penser à désactiver l’authentification par mot de passe dans le serveur ssh
Presque, la clé privée il faut quand même la garder bien au chaud pour le proprio uniquement.
La rendre lisible pour autrui, ça revient à donner son mot de passe.
Bonjour @bentou
Au taf j’utilise Putty Gen pour générer les clés, la privée sous Windows est dans le dossier C:\Users\monNom\.ssh et la publique est déposée sur le serveur
Putty gen te permet d’ajouter en plus de la clé un mot de passe.
Bob
C:\Users\bento\>ssh-keygen.exe
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\bento/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\bento/.ssh/id_rsa
Your public key has been saved in C:\Users\bento/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:jIcIEdMwC1TejjQUtz5F2w14wM3yQqGHTgxtoQ1ujnN bento@benoit
The key's randomart image is:
+---[RSA 3072]----+
|.=*. .+o=. |
| .u+ . . +.+o.|
| .oE o. = .. o..o|
| .o . * + .=.. |
| . = S +.+ + |
| o = * +.. |
| + + o. |
| o. |
| .. |
+----[SHA256]-----+
C:\Users\bento>dir .ssh
21/05/2024 17:18 2 602 id_rsa
21/05/2024 17:18 567 id_rsa.pub
21/05/2024 17:18 7 871 known_hosts
C:\Users\bento>copy .ssh\id_rsa.pub \\192.168.92.25\config\temp
1 fichier(s) copié(s).
~ $ ls -l /config/temp
total 8
-rwxr--r-- 1 root root 567 May 21 17:18 id_rsa.pub
drwxr-xr-x 5 root root 4096 May 21 10:31 ssh-audit-master
.ssh $ cat /config/temp/id_rsa.pub >> ~/.ssh/authorized_keys
.ssh $
mais maintenant, c’est quoi que je met dans le fichier de conf ?
parceque j’ai tapé
C:\Users\bento\.ssh>ssh hassio@192.168.92.25
The authenticity of host '192.168.92.25 (192.168.92.25)' can't be established.
ED25519 key fingerprint is SHA256:9pT2cVEXjkmh9HwGTakS6iZYOHB9ynqb4NzkSzTWA1w.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.92.25' (ED25519) to the list of known hosts.
Corrupted MAC on input.
ssh_dispatch_run_fatal: Connection to 192.168.92.25 port 22: message authentication code incorrect
C:\Users\bento\.ssh>
avec ca comme log…
[17:54:55] INFO: Starting the ttyd daemon...
[17:54:55] INFO: Starting the SSH daemon...
Server listening on 0.0.0.0 port 22.
Server listening on :: port 22.
s6-rc: info: service legacy-services successfully started
Connection from 192.168.92.10 port 48652 on 192.168.92.25 port 22 rdomain ""
kex_exchange_identification: Connection closed by remote host
Connection closed by 192.168.92.10 port 48652
bon, impossible à faire marcher, même en mettant les 2 cles de chaque coté
j’ai tout viré des 2 coté
j’ai réinstallé le ssh pour mickey
même sans aucune clef, il me rempli le fichier known_hosts du poste:
Ce sont les hôtes que tu reconnais lorsque tu te connecte pour la première fois il te demande de valider l’empreinte du serveur sur lequel tu te connectes
A l’époque ou j’ai configurer mon accès SSH j’avais fais une note pour mieux comprendre moi-même comment tout cela fonctionne. Je la poste ici mais n’hésitaient pas à me corriger peut etre que j’avais mal compris tout ca.
En tout cas, je n’y ais pas toucher depuis et ca fonctionne toujours chez moi ^^
-Pour configurer le SSH il faudra creer une paire de clé SSH
Elles seront placé par défaut à cat emplacement
Dans Windows Clé utilisateurs C:\Users\USER\.ssh
Clé Root C:\ProgramData\ssh
Dans HomeAssistant Clé Utilisateurs /root/.ssh
Clé Root /etc/ssh
Dans OSX Clé Utilisateurs /Users/USER/.ssh
Clé Root /private/etc/ssh
-Pour autoriser de manière permanante le client a se connecter au serveur
sans authentifications, il faudra entrer la clé public du client
dans le fichier authorized_keys du serveur à cet emplacement
Dans Windows C:\Users\USER\.ssh\authorized_keys
Dans HomeAssistant /root/.ssh/authorized_keys
Dans OSX /Users/USER/.ssh/authorized_keys
-Le fichier known_hosts, lui, indiquera la liste des hotes qui se sont
deja connecter sur le serveur à cet emplacement.
Il contient la CLE PUB de la machine sur lequel on se connecte.
Ainsi lors de la connexion il y a une verification dans les deux sens.
EXEMPLE de connexion du HomeAssistant vers PC
HomeAssistant se connect en utilisant sa cle privee.
PC verifie la presence de la cle public dans authorized_keys.
En reponse PC envoit au HomeAssistant sa cle prive
qui verifie si sa public est bien dans known_hosts
et correspond a la bonne IP
Dans Windows C:\Users\USER\.ssh\known_hosts
Dans HomeAssistant /root/.ssh/known_hosts
Dans OSX /Users/USER/.ssh/known_hosts
# ENTRER DANS HomeAssistant EN SSH depuis OSX/Win
ssh user@192.168.X.XX
# ENTRER DANS Win EN SSH depuis HomeAssistant
ssh user@192.168.X.XX
soit la clef publique suivante: ssd-ed25519 AAAAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx uuu@hhh
avec le x qui est l’ensemble de lettres maj/min de la clef en elle même, uuu pour le user, hhh pour le host.
la clef publique qu’on rentre dans known_hosts du serveur de destination
c’est bien l’ensemble des 3 champs et user@host ?
le user et le host doivent correspondre à quelque chose de précis ?
au niveau du serveur ?
au niveau de client ?
la clef publique doit se trouver sur le serveur distant.
la clé privée doit se trouver où ?
sur le client ?
sur le serveur ?
sur une clef usb au coffre ?
si on a une clef privée, peut on générer plusieurs clef publiques, pour plusieurs serveurs ou on met la meme clef partout ?
C’est un commentaire il n’a aucun intérêt ça sert juste a identifier la clé
Sur le serveur tu ne copie que ta clé publique dans le fichier authorized_keyset surtout pas ta cle privée celle là tu la garde sur ton client pour te connecter avec
Oui une seule clé publique par clé privée
Après tu peux générer ou plusieurs paire de clés si tu veux
Parfait.
en fait, je me demandais si la clef privée pouvait etre retirée du client, une fois la connexion effectuée et validée avec le serveur. la réponse est non.
j’arrive à me connecter en ssh avec la passphrase sur mon HA.
mais uniquement avec l’add-on ssh ‹ standard ›
impossible de faire fonctionner le ‹ advanced ssh ›.
j’ai ca comme log:
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service base-addon-log-level: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service base-addon-log-level successfully stopped
s6-rc: info: service base-addon-banner: stopping
s6-rc: info: service base-addon-banner successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service base-addon-banner: starting
-----------------------------------------------------------
Add-on: Advanced SSH & Web Terminal
A supercharged SSH & Web Terminal access to your Home Assistant instance
-----------------------------------------------------------
Add-on version: 17.3.0
You are running the latest version of this add-on.
System: Home Assistant OS 12.3 (aarch64 / raspberrypi5-64)
Home Assistant Core: 2024.5.4
Home Assistant Supervisor: 2024.05.1
-----------------------------------------------------------
Please, share the above information when looking for help
or support in, e.g., GitHub, forums or the Discord chat.
-----------------------------------------------------------
s6-rc: info: service base-addon-banner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service base-addon-log-level: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service base-addon-log-level successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service init-ssh: starting
s6-rc: info: service init-mysql: starting
s6-rc: info: service init-mosquitto: starting
s6-rc: info: service init-docker: starting
s6-rc: info: service init-docker successfully started
s6-rc: info: service init-mysql successfully started
[20:32:44] WARNING:
[20:32:44] WARNING: Logging in with "root" as the username,
[20:32:44] WARNING: is security wise a bad idea!
[20:32:44] WARNING:
[20:32:44] WARNING: Most attacks against SSH are attempts to login
[20:32:44] WARNING: using the "root" username.
[20:32:44] WARNING:
[20:32:44] NOTICE: RSA host key missing, generating one...
s6-rc: info: service init-mosquitto successfully started
Generating public/private rsa key pair.
Your identification has been saved in /data/ssh_host_rsa_key
Your public key has been saved in /data/ssh_host_rsa_key.pub
The key fingerprint is:
SHA256:Od98xLBbS1h9HE7hNzMTN4DecL9KU4q45wqVufCIzdQ root@a0d7b954-ssh
The key's randomart image is:
+---[RSA 3072]----+
| ...*o|
| o .+o=|
| . = oB=|
| ..o. B oB|
| oSE. + B .|
| = =+.+ O o |
| . = oo = = |
| .. . o |
| .+. |
+----[SHA256]-----+
[20:32:44] NOTICE: ED25519 host key missing, generating one...
Generating public/private ed25519 key pair.
Your identification has been saved in /data/ssh_host_ed25519_key
Your public key has been saved in /data/ssh_host_ed25519_key.pub
The key fingerprint is:
SHA256:C2lclQ3JNN7G2WkjXpT2f6sHkx4JesR7tMAUhs62ddQ root@a0d7b954-ssh
The key's randomart image is:
+--[ED25519 256]--+
| o=B+. |
| oOO. |
| .*.oO . .|
| . oo *=o+o.E|
| = So.+o=oo |
| . . . =.* o|
| . B =.|
| o + |
| . |
+----[SHA256]-----+
s6-rc: info: service init-ssh successfully started
s6-rc: info: service init-user: starting
[20:32:45] NOTICE: Session sharing has been disabled!
s6-rc: info: service init-user successfully started
s6-rc: info: service ttyd: starting
s6-rc: info: service sshd: starting
s6-rc: info: service ttyd successfully started
s6-rc: info: service sshd successfully started
s6-rc: info: service legacy-services: starting
[20:32:45] INFO: Starting the ttyd daemon...
[20:32:45] INFO: Starting the SSH daemon...
Server listening on 0.0.0.0 port 22.
Server listening on :: port 22.
s6-rc: info: service legacy-services successfully started
Connection from fe80::7e39:a528:180c:11d9%end0 port 39715 on fe80::3bba:bcd9:40f7:a749%end0 port 22 rdomain "end0"
Connection reset by fe80::7e39:a528:180c:11d9%end0 port 39715 [preauth]
Connection from fe80::7e39:a528:180c:11d9%end0 port 39768 on fe80::3bba:bcd9:40f7:a749%end0 port 22 rdomain "end0"
Connection reset by fe80::7e39:a528:180c:11d9%end0 port 39768 [preauth]
C:\Users\bento>ssh root@homeassistant.local
Corrupted MAC on input.
ssh_dispatch_run_fatal: Connection to fe80::3bba:bcd9:40f7:a749%3 port 22: message authentication code incorrect
C:\Users\bento>