diff options
Diffstat (limited to 'plugins/check_ssh.c')
| -rw-r--r-- | plugins/check_ssh.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/plugins/check_ssh.c b/plugins/check_ssh.c index 8a3abb03..b4bfab45 100644 --- a/plugins/check_ssh.c +++ b/plugins/check_ssh.c | |||
| @@ -278,11 +278,35 @@ ssh_connect (char *haddr, int hport, char *remote_version, char *remote_protocol | |||
| 278 | printf("SSH CRITICAL - No version control string received"); | 278 | printf("SSH CRITICAL - No version control string received"); |
| 279 | exit(STATE_CRITICAL); | 279 | exit(STATE_CRITICAL); |
| 280 | } | 280 | } |
| 281 | /* | ||
| 282 | * "When the connection has been established, both sides MUST send an | ||
| 283 | * identification string. This identification string MUST be | ||
| 284 | * | ||
| 285 | * SSH-protoversion-softwareversion SP comments CR LF" | ||
| 286 | * - RFC 4253:4.2 | ||
| 287 | */ | ||
| 281 | strip (version_control_string); | 288 | strip (version_control_string); |
| 282 | if (verbose) | 289 | if (verbose) |
| 283 | printf ("%s\n", version_control_string); | 290 | printf ("%s\n", version_control_string); |
| 284 | ssh_proto = version_control_string + 4; | 291 | ssh_proto = version_control_string + 4; |
| 285 | ssh_server = ssh_proto + strspn (ssh_proto, "-0123456789."); | 292 | |
| 293 | /* | ||
| 294 | * We assume the protoversion is of the form Major.Minor, although | ||
| 295 | * this is not _strictly_ required. See | ||
| 296 | * | ||
| 297 | * "Both the 'protoversion' and 'softwareversion' strings MUST consist of | ||
| 298 | * printable US-ASCII characters, with the exception of whitespace | ||
| 299 | * characters and the minus sign (-)" | ||
| 300 | * - RFC 4253:4.2 | ||
| 301 | * and, | ||
| 302 | * | ||
| 303 | * "As stated earlier, the 'protoversion' specified for this protocol is | ||
| 304 | * "2.0". Earlier versions of this protocol have not been formally | ||
| 305 | * documented, but it is widely known that they use 'protoversion' of | ||
| 306 | * "1.x" (e.g., "1.5" or "1.3")." | ||
| 307 | * - RFC 4253:5 | ||
| 308 | */ | ||
| 309 | ssh_server = ssh_proto + strspn (ssh_proto, "0123456789.") + 1; /* (+1 for the '-' separating protoversion from softwareversion) */ | ||
| 286 | 310 | ||
| 287 | /* If there's a space in the version string, whatever's after the space is a comment | 311 | /* If there's a space in the version string, whatever's after the space is a comment |
| 288 | * (which is NOT part of the server name/version)*/ | 312 | * (which is NOT part of the server name/version)*/ |
