make host/banner comments go to stderr instead of stdout, so they
authordjm <djm@openbsd.org>
Fri, 14 Jun 2024 00:25:25 +0000 (00:25 +0000)
committerdjm <djm@openbsd.org>
Fri, 14 Jun 2024 00:25:25 +0000 (00:25 +0000)
are useful as comments without extra shell redirection and so they
don't clutter actual errors on stderr.

Add a -q flag to shut them up.

ok dtucker@

usr.bin/ssh/ssh-keyscan.c

index 3dbc64c..befc61c 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh-keyscan.c,v 1.157 2024/05/06 19:26:17 tobias Exp $ */
+/* $OpenBSD: ssh-keyscan.c,v 1.158 2024/06/14 00:25:25 djm Exp $ */
 /*
  * Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>.
  *
@@ -76,6 +76,8 @@ int found_one = 0;            /* Successfully found a key */
 
 int hashalg = -1;              /* Hash for SSHFP records or -1 for all */
 
+int quiet = 0;                 /* Don't print key comment lines */
+
 #define MAXMAXFD 256
 
 /* The number of seconds after which to give up on a TCP connection */
@@ -516,8 +518,10 @@ congreet(int s)
                confree(s);
                return;
        }
-       fprintf(stderr, "%c %s:%d %s\n", print_sshfp ? ';' : '#',
-           c->c_name, ssh_port, chop(buf));
+       if (!quiet) {
+               fprintf(stdout, "%c %s:%d %s\n", print_sshfp ? ';' : '#',
+                   c->c_name, ssh_port, chop(buf));
+       }
        keygrab_ssh2(c);
        confree(s);
 }
@@ -639,7 +643,7 @@ static void
 usage(void)
 {
        fprintf(stderr,
-           "usage: ssh-keyscan [-46cDHv] [-f file] [-O option] [-p port] [-T timeout]\n"
+           "usage: ssh-keyscan [-46cDHqv] [-f file] [-O option] [-p port] [-T timeout]\n"
            "                   [-t type] [host | addrlist namelist]\n");
        exit(1);
 }
@@ -664,7 +668,7 @@ main(int argc, char **argv)
        if (argc <= 1)
                usage();
 
-       while ((opt = getopt(argc, argv, "cDHv46O:p:T:t:f:")) != -1) {
+       while ((opt = getopt(argc, argv, "cDHqv46O:p:T:t:f:")) != -1) {
                switch (opt) {
                case 'H':
                        hash_hosts = 1;
@@ -699,6 +703,9 @@ main(int argc, char **argv)
                        else
                                fatal("Too high debugging level.");
                        break;
+               case 'q':
+                       quiet = 1;
+                       break;
                case 'f':
                        if (strcmp(optarg, "-") == 0)
                                optarg = NULL;