SmokePing 2.7.3 needs an update to use the SSH probe on Debian Buster.

SmokePing stopped working for me on Debian Buster.

SmokePing version.

$ smokeping -V
2.007003
$ apt-cache policy smokeping
smokeping:
  Installed: 2.7.3-2
  Candidate: 2.7.3-2
  Version table:
 *** 2.7.3-2 500
        500 http://deb.debian.org/debian buster/main amd64 Packages
        100 /var/lib/dpkg/status

Operating system version.

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

It looks like the openssh-client does not support old key types.

$ sudo smokeping --debug
ERROR: output of '/usr/bin/ssh-keyscan -t dsa,rsa,rsa1 127.0.0.1' does not match (?^i:^# \S+ SSH-)
 at (eval 59) line 1.
$ /usr/bin/ssh-keyscan -t dsa,rsa,rsa1 127.0.0.1
Unknown key type "rsa1"

The solution is to download and install a patch from the upstream.

From 62ac9fda04b994bbf4f97d3dd1cf8b92cf279e71 Mon Sep 17 00:00:00 2001
From: "Avinash H. Duduskar" <strykar@hotmail.com>
Date: Mon, 11 Mar 2019 13:16:13 +0530
Subject: [PATCH] Update SSH.pm to drop SSHv1 rsa1

- Removes rsa1
- Adds ecdsa instead
https://github.com/oetiker/SmokePing/issues/120
---
 lib/Smokeping/probes/SSH.pm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/Smokeping/probes/SSH.pm b/lib/Smokeping/probes/SSH.pm
index ffbb5cc2..f21f53e8 100644
--- a/lib/Smokeping/probes/SSH.pm
+++ b/lib/Smokeping/probes/SSH.pm
@@ -55,7 +55,7 @@ sub new($$$)
     # no need for this if we run as a cgi
     unless ( $ENV{SERVER_SOFTWARE} ) {
         
-        my $call = "$self->{properties}{binary} -t dsa,rsa,rsa1 127.0.0.1";
+        my $call = "$self->{properties}{binary} -t dsa,rsa,ecdsa 127.0.0.1";
         my $return = `$call 2>&1`;
         if ($return =~ m/$ssh_re/s){
             print "### parsing ssh-keyscan output...OK\n";
@@ -132,7 +132,7 @@ sub targetvars {
         return $class->_makevars($class->SUPER::targetvars, {
            keytype => {
                _doc => "Type of key, used in ssh-keyscan -t I<keytype>",
-	       _re => "[dr]sa1*",
+	       _re => "[ecdr]sa*",
                _example => 'dsa',
                _default => 'rsa',
            },

Install patch utility.

$ sudo apt install patch
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  ed diffutils-doc
The following NEW packages will be installed:
  patch
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 126 kB of archives.
After this operation, 249 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian buster/main amd64 patch amd64 2.7.6-3+deb10u1 [126 kB]
Fetched 126 kB in 0s (414 kB/s)
Selecting previously unselected package patch.
(Reading database ... 35823 files and directories currently installed.)
Preparing to unpack .../patch_2.7.6-3+deb10u1_amd64.deb ...
Unpacking patch (2.7.6-3+deb10u1) ...
Setting up patch (2.7.6-3+deb10u1) ...
Processing triggers for man-db (2.8.5-2) ...

Change the working directory to /usr/share/perl5/.

$ cd /usr/share/perl5/

Inspect what would happen.

/usr/share/perl5$ patch --dry-run -p2 < ~/smokeping.patch 
File Smokeping/probes/SSH.pm is read-only; trying to patch anyway
checking file Smokeping/probes/SSH.pm
Hunk #2 succeeded at 130 (offset -2 lines).

Apply patch.

/usr/share/perl5$ sudo patch -p2 < ~/smokeping.patch 
patching file Smokeping/probes/SSH.pm
Hunk #2 succeeded at 130 (offset -2 lines).

SmokePing will start working as expected.

$ sudo smokeping --debug                                                                                                 
### parsing ssh-keyscan output...OK                                                                                                      
### parsing dig output...OK                                                                                                              
### Compiling alert detector pattern 'lossdetect'                                                                                        
### ==0%,==0%,==0%,==0%,==0%,>0%,>0%,>0%
[...]
Smokeping version 2.007003 successfully launched.
Not entering multiprocess mode with '--debug'. Use '--debug-daemon' for that.
DNS: probing 3 targets with step 300 s and offset 97 s.
Curl: probing 2 targets with step 300 s and offset 97 s.
FPing: probing 2 targets with step 300 s and offset 97 s.
SSH: probing 1 targets with step 300 s and offset 97 s.
[...]

Done.