SSH KO vers machine en debian 12 (algorithme ssh du plugin trop faible)

Bonjour,

Je viens de passer mon proxmox en 8.0 avec du debian 12.
Problème le plugin monitoring coté jeedom n’a pas l’air d’apprecier la securité trop basse de la connexion ssh mise en place par le plugin.

J’ai trouvé la solution pour contourner le problème coté serveur ssh du proxmox en ajoutant dans la config ssh /etc/ssh/sshd_config

HostKeyAlgorithms +ssh-rsa,ssh-dss

Ca refonctionne direct … sauf qu’en faisant ca je baisse la securité ssh du serveur, j’aurai preféré monter la secu/update le ssh du plugin.
J’ai un peu fouillé ca doit etre etroitement lié je pense à php ssh2 mais je coince un peu.

Si quelqu’un a une piste je suis preneur !

Merci à vous.

Bonjour,
Oui le problème est coté plugin, il faut modifier les protocoles possibles.
Soit c’est dans le code du plugin, soit un paramètre. A voir avec le développeur …

Sauf qu’il n’y a plus trop de dev sur le plugin depuis plus de 2 ans … :frowning:

Donc, pas vraiment de solutions …
C’est quel plugin de monitoring ? Il y en a pléthore sur le market

Celui qui est tagué le gratuit.

c’est bien pour qu’il y a le tag plugin-monitoring ; il n’y a aucun doute du coup

Je vois bien que tout se fait dans le fichier Monitoring.class.php

La methode ssh2_connect lié à php7 est utilisée et doit certainement prendre un peu de bouteille sur les protocoles de secu mais c’est un peu hors de mes compétences.

Vraiment aucune piste ?

Ce qui m’embete c’est que je surveille des systèmes qui sont pas que chez moi donc dégrader la sécu ssh du server remote m’embete un peu.

Hello,

Je ne vais pas tellement avec de solution toute faite parce que je pense pas que l’on puisse y faire quelque chose coté code.

C’est la librairie qu’utilise php-ssh2 qui ne prend pas en charge les nouveaux algorithmes de chiffrement. Il faudrait pouvoir mettre à jour en 1.3.1 car j’ai essayé depuis une bulleyes qui est en 1.2+0.13-4 et je n’arrive pas non plus à établir une connexion avec la fonction php ssh2_connect sur une Debian12 (même noyaux que Proxmox 8).

J’ai essayé de faire une montée de version de cette php-ssh2 depuis une Debian 10 en utilisation un autre repo (sid) mais j’ai une erreur dans l’installation des dépendances … bref ça se fait peut-être mais ça a pas l’air évident. J’aurais tenté de t’aider :slight_smile:

1 « J'aime »

Bonjour,

J’ai eu le même problème avec le #plugin-nut_free.
Et après plusieurs heures de recherche j’ai abouti à la même solution que toi. J’ai bien tenté de passer des paramètres à ssh2_connect mais en vain. Comme le dit Bison le problème c’est la librairie utilisée.

Merci en tout cas pour vos contributions, vais voir pour reussir à upgrade php-ssh2.

Dernier recours sera de me passer du plugin et de faire du ssh en script a la mano mais bon depuis des années ce petit plugin faisait très bien le taf.
J’ai d’ailleurs essayé de chercher qui etait le dev du plugin mais j’ai pas trouvé.

c’est une info facile à trouver:
image

Oui c’est vrai j’avais vu mais je le retrouve pas sur le forum :slight_smile:

Il y avait eu un PR de poussé en 2021 et Phifi avait validé.

Bonjour,

Solution trouvée pour plugin-nut_free en passant sur phpseclib.

Bonjour,

Il y a du taf sur ce plugin pour intégrer!

Il faut:

  • ajouter packages.json avec « php-phpseclib » à installer
  • modifier « monitoring.class.php »:
    ajouter en debut de fichier:

set_include_path(get_include_path() . get_include_path().'/phpseclib');
include('Net/SSH2.php');
include('Crypt/RSA.php');
include('autoload.php');

use phpseclib\Net\SSH2;

modifier tout le code entre les lignes 535 et 942 puis entre 1471 et 1496.

Et ensuite valider!

exemple de modifications a remplacer (dans les grandes lignes!!):

if (!$connection = ssh2_connect($ip,$port)) {
				log::add('Monitoring', 'error', 'connexion SSH KO pour '.$equipement);
				$cnx_ssh = 'KO';
			}else{
				if (!ssh2_auth_password($connection,$user,$pass)){
					log::add('Monitoring', 'error', 'Authentification SSH KO pour '.$equipement);
					$cnx_ssh = 'KO';

par

if (!$sshconnection = new SSH2($ip,$port)){
				log::add('Monitoring', 'error', 'connexion SSH KO pour '.$equipement);
				$cnx_ssh = 'KO';
			}else{
				
				if (!$sshconnection->login($user, $pass)){
				log::add('Monitoring', 'error', 'Authentification SSH KO pour '.$equipement);
					$cnx_ssh = 'KO';

et remplacer tout ce qui ressemble à :

$loadavgoutput = ssh2_exec($connection, $loadavgcmd);
					stream_set_blocking($loadavgoutput, true);
					$loadav = stream_get_contents($loadavgoutput);

par:

$loadavgoutput = $sshconnection->exec($loadavgcmd);
$loadav = $loadavgoutput;  

Ensuite, il y aura forcement des sections à adapter!!!

Stef.

1 « J'aime »

Merci en tout cas de mettre le pied a l’étrier :wink:

Ça serait la même chose pour le plugin #plugin-monitoring ?

Bonjour,

C’est justement pour ce plugin que @Stef74 indique les modifs :wink: dans les grandes lignes.

Oups pas réveillé je pensais qu’on était sur le plugin nut

J’essaye de bricoler sur la VM de test jeedom alors :grin:

Hello,

Je viens de faire quelques tests alors la bonne nouvelle j’ai plus d’erreur ssh ! (en ayant desactivé sur le serveur ssh HostKeyAlgorithms +ssh-rsa,ssh-dss)
La mauvaise y’a plus grand chose qui est récupéré en info lol (la charge cpu est tjs de la partie).

versus normalement

image

Je joins les 2 fichiers que j’ai tuné vis à vis des modifs listées ci dessus.

install.sh.txt (2,4 Ko) ===> pour l’install de php-phpseclib (et donc j’ai relancé les dependances)
Monitoring.class.php.txt (63,7 Ko)

Merci