How do I make ssh fail rather than prompt for a password if the public-key authentication fails?git clone - fail instead of prompting for credentialsIs SSH logging capabilities equivalent to su logging for private/public key authentication?Create a public SSH key from the private key?Can't get SSH public key authentication to workConnect through SSH and type in password automatically, without using a public keyssh authentication with public-private key pairIs it possible to get OpenSSH to log the public key that was used in authentication?SSH Public Key Authentication not working with PuTTYHow to get password prompt from ssh in Perl scriptRestrict SSH login to public key from public networks, but allow password from internal networksWhy should I use Public-Key Authentication for SSH?

What is the actual quality of machine translations?

Importance of Building Credit Score?

Does a scale have more than seven chords?

English word for "product of tinkering"

1980s live-action movie where individually-coloured nations on clouds fight

Need feedback - Can the composition/colors of this design be fixed if something is lacking or is not a better fit?

Is an entry level DSLR going to shoot nice portrait pictures?

Arriving at the same result with the opposite hypotheses

Group Integers by Originality

concatenation of context sensitive and context-free is context sensitive or not?

Extreme flexible working hours: how to control people and activities?

Rebus with 20 song titles

How is John Wick 3 a 15 certificate?

What is the purpose of the goat for Azazel, as opposed to conventional offerings?

Compiling C files on Ubuntu and using the executable on Windows

Overlapping String-Blocks

Mathematically, why does mass matrix / load vector lumping work?

Pre-1972 sci-fi short story or novel: alien(?) tunnel where people try new moves and get destroyed if they're not the correct ones

Which languages would be most useful in Europe at the end of the 19th century?

Why can my keyboard only digest 6 keypresses at a time?

How did old MS-DOS games utilize various graphic cards?

How can I get an unreasonable manager to approve time off?

When would it be advantageous not apply Training Ground's cost reduction?

Is it expected that a reader will skip parts of what you write?



How do I make ssh fail rather than prompt for a password if the public-key authentication fails?


git clone - fail instead of prompting for credentialsIs SSH logging capabilities equivalent to su logging for private/public key authentication?Create a public SSH key from the private key?Can't get SSH public key authentication to workConnect through SSH and type in password automatically, without using a public keyssh authentication with public-private key pairIs it possible to get OpenSSH to log the public key that was used in authentication?SSH Public Key Authentication not working with PuTTYHow to get password prompt from ssh in Perl scriptRestrict SSH login to public key from public networks, but allow password from internal networksWhy should I use Public-Key Authentication for SSH?






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








104















I've got a script that ssh'es several servers using public key authentication. One of the servers has stopped letting the script log in due to a configuration issue, which means that the script gets stuck with a "Password:" prompt, which it obviously cannot answer, so it doesn't even try the rest of the servers in the list.



Is there a way to tell the ssh client not to prompt for a password if key authentication fails, but instead to just report an error connecting and let my script carry on?










share|improve this question






























    104















    I've got a script that ssh'es several servers using public key authentication. One of the servers has stopped letting the script log in due to a configuration issue, which means that the script gets stuck with a "Password:" prompt, which it obviously cannot answer, so it doesn't even try the rest of the servers in the list.



    Is there a way to tell the ssh client not to prompt for a password if key authentication fails, but instead to just report an error connecting and let my script carry on?










    share|improve this question


























      104












      104








      104


      27






      I've got a script that ssh'es several servers using public key authentication. One of the servers has stopped letting the script log in due to a configuration issue, which means that the script gets stuck with a "Password:" prompt, which it obviously cannot answer, so it doesn't even try the rest of the servers in the list.



      Is there a way to tell the ssh client not to prompt for a password if key authentication fails, but instead to just report an error connecting and let my script carry on?










      share|improve this question
















      I've got a script that ssh'es several servers using public key authentication. One of the servers has stopped letting the script log in due to a configuration issue, which means that the script gets stuck with a "Password:" prompt, which it obviously cannot answer, so it doesn't even try the rest of the servers in the list.



      Is there a way to tell the ssh client not to prompt for a password if key authentication fails, but instead to just report an error connecting and let my script carry on?







      ssh authentication public-key






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Feb 17 '17 at 13:42









      7ochem

      2761312




      2761312










      asked Sep 3 '09 at 10:58









      rjmunrorjmunro

      1,12641121




      1,12641121




















          4 Answers
          4






          active

          oldest

          votes


















          133














          For OpenSSH there is BatchMode, which in addition to disabling password prompting, should disable querying for passphrase(s) for keys.




          BatchMode




          If set to “yes”, passphrase/password querying will be disabled.
          This option is useful in scripts and other batch jobs where no
          user is present to supply the password. The argument must be
          “yes” or “no”. The default is “no”.





          Sample usage:



          ssh -oBatchMode=yes -l <user> <host> <dostuff>





          share|improve this answer
































            18














            Add the following to your ~/.ssh/config:



            PasswordAuthentication no


            and to disable password authentication on the server, add the same line to /etc/ssh/sshd_config and restart sshd.






            share|improve this answer




















            • 7





              if you don't want to disable password auth for all ssh client connections, you can also specify options on the command line. add '-oPasswordAuthentication=no' to your ssh command.

              – cas
              Sep 3 '09 at 11:23






            • 7





              This does not prevent the password prompt. OP's script will still hang.

              – Joshua Swink
              Nov 4 '09 at 20:02


















            11














            If you are using dropbear, just add the "-s" option to disable password authentication.






            share|improve this answer


















            • 4





              +1 for not assuming the client is openssh :-)

              – cas
              Sep 3 '09 at 11:55


















            7














            On the command line (or ~/.ssh/config) you can set PreferredAuthentications.



            PreferredAuthentications=publickey





            share|improve this answer

























            • I think that, on the command line, you need to wrap the option in quotes and then pass it to the -o option.

              – Craig Walker
              Sep 11 '09 at 1:20






            • 3





              @CraigWalker You can also pass it as is, i.e. ssh -o PreferredAuthentications=publickey

              – Tobias Kienzler
              Oct 29 '13 at 13:33











            • @CraigWalker You need quotes if you wish to use spaces to separate the option and the value e.g. ssh "-oPreferredAuthentications publickey"

              – Timo
              Mar 14 '18 at 12:02











            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "2"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f61915%2fhow-do-i-make-ssh-fail-rather-than-prompt-for-a-password-if-the-public-key-authe%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            4 Answers
            4






            active

            oldest

            votes








            4 Answers
            4






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            133














            For OpenSSH there is BatchMode, which in addition to disabling password prompting, should disable querying for passphrase(s) for keys.




            BatchMode




            If set to “yes”, passphrase/password querying will be disabled.
            This option is useful in scripts and other batch jobs where no
            user is present to supply the password. The argument must be
            “yes” or “no”. The default is “no”.





            Sample usage:



            ssh -oBatchMode=yes -l <user> <host> <dostuff>





            share|improve this answer





























              133














              For OpenSSH there is BatchMode, which in addition to disabling password prompting, should disable querying for passphrase(s) for keys.




              BatchMode




              If set to “yes”, passphrase/password querying will be disabled.
              This option is useful in scripts and other batch jobs where no
              user is present to supply the password. The argument must be
              “yes” or “no”. The default is “no”.





              Sample usage:



              ssh -oBatchMode=yes -l <user> <host> <dostuff>





              share|improve this answer



























                133












                133








                133







                For OpenSSH there is BatchMode, which in addition to disabling password prompting, should disable querying for passphrase(s) for keys.




                BatchMode




                If set to “yes”, passphrase/password querying will be disabled.
                This option is useful in scripts and other batch jobs where no
                user is present to supply the password. The argument must be
                “yes” or “no”. The default is “no”.





                Sample usage:



                ssh -oBatchMode=yes -l <user> <host> <dostuff>





                share|improve this answer















                For OpenSSH there is BatchMode, which in addition to disabling password prompting, should disable querying for passphrase(s) for keys.




                BatchMode




                If set to “yes”, passphrase/password querying will be disabled.
                This option is useful in scripts and other batch jobs where no
                user is present to supply the password. The argument must be
                “yes” or “no”. The default is “no”.





                Sample usage:



                ssh -oBatchMode=yes -l <user> <host> <dostuff>






                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited May 22 at 19:50









                Community

                1




                1










                answered Sep 3 '09 at 12:09









                Kjetil JoergensenKjetil Joergensen

                5,06412217




                5,06412217























                    18














                    Add the following to your ~/.ssh/config:



                    PasswordAuthentication no


                    and to disable password authentication on the server, add the same line to /etc/ssh/sshd_config and restart sshd.






                    share|improve this answer




















                    • 7





                      if you don't want to disable password auth for all ssh client connections, you can also specify options on the command line. add '-oPasswordAuthentication=no' to your ssh command.

                      – cas
                      Sep 3 '09 at 11:23






                    • 7





                      This does not prevent the password prompt. OP's script will still hang.

                      – Joshua Swink
                      Nov 4 '09 at 20:02















                    18














                    Add the following to your ~/.ssh/config:



                    PasswordAuthentication no


                    and to disable password authentication on the server, add the same line to /etc/ssh/sshd_config and restart sshd.






                    share|improve this answer




















                    • 7





                      if you don't want to disable password auth for all ssh client connections, you can also specify options on the command line. add '-oPasswordAuthentication=no' to your ssh command.

                      – cas
                      Sep 3 '09 at 11:23






                    • 7





                      This does not prevent the password prompt. OP's script will still hang.

                      – Joshua Swink
                      Nov 4 '09 at 20:02













                    18












                    18








                    18







                    Add the following to your ~/.ssh/config:



                    PasswordAuthentication no


                    and to disable password authentication on the server, add the same line to /etc/ssh/sshd_config and restart sshd.






                    share|improve this answer















                    Add the following to your ~/.ssh/config:



                    PasswordAuthentication no


                    and to disable password authentication on the server, add the same line to /etc/ssh/sshd_config and restart sshd.







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Feb 16 '17 at 11:36









                    7ochem

                    2761312




                    2761312










                    answered Sep 3 '09 at 11:19









                    cascas

                    5,6472229




                    5,6472229







                    • 7





                      if you don't want to disable password auth for all ssh client connections, you can also specify options on the command line. add '-oPasswordAuthentication=no' to your ssh command.

                      – cas
                      Sep 3 '09 at 11:23






                    • 7





                      This does not prevent the password prompt. OP's script will still hang.

                      – Joshua Swink
                      Nov 4 '09 at 20:02












                    • 7





                      if you don't want to disable password auth for all ssh client connections, you can also specify options on the command line. add '-oPasswordAuthentication=no' to your ssh command.

                      – cas
                      Sep 3 '09 at 11:23






                    • 7





                      This does not prevent the password prompt. OP's script will still hang.

                      – Joshua Swink
                      Nov 4 '09 at 20:02







                    7




                    7





                    if you don't want to disable password auth for all ssh client connections, you can also specify options on the command line. add '-oPasswordAuthentication=no' to your ssh command.

                    – cas
                    Sep 3 '09 at 11:23





                    if you don't want to disable password auth for all ssh client connections, you can also specify options on the command line. add '-oPasswordAuthentication=no' to your ssh command.

                    – cas
                    Sep 3 '09 at 11:23




                    7




                    7





                    This does not prevent the password prompt. OP's script will still hang.

                    – Joshua Swink
                    Nov 4 '09 at 20:02





                    This does not prevent the password prompt. OP's script will still hang.

                    – Joshua Swink
                    Nov 4 '09 at 20:02











                    11














                    If you are using dropbear, just add the "-s" option to disable password authentication.






                    share|improve this answer


















                    • 4





                      +1 for not assuming the client is openssh :-)

                      – cas
                      Sep 3 '09 at 11:55















                    11














                    If you are using dropbear, just add the "-s" option to disable password authentication.






                    share|improve this answer


















                    • 4





                      +1 for not assuming the client is openssh :-)

                      – cas
                      Sep 3 '09 at 11:55













                    11












                    11








                    11







                    If you are using dropbear, just add the "-s" option to disable password authentication.






                    share|improve this answer













                    If you are using dropbear, just add the "-s" option to disable password authentication.







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Sep 3 '09 at 11:54









                    sybreonsybreon

                    7,12711519




                    7,12711519







                    • 4





                      +1 for not assuming the client is openssh :-)

                      – cas
                      Sep 3 '09 at 11:55












                    • 4





                      +1 for not assuming the client is openssh :-)

                      – cas
                      Sep 3 '09 at 11:55







                    4




                    4





                    +1 for not assuming the client is openssh :-)

                    – cas
                    Sep 3 '09 at 11:55





                    +1 for not assuming the client is openssh :-)

                    – cas
                    Sep 3 '09 at 11:55











                    7














                    On the command line (or ~/.ssh/config) you can set PreferredAuthentications.



                    PreferredAuthentications=publickey





                    share|improve this answer

























                    • I think that, on the command line, you need to wrap the option in quotes and then pass it to the -o option.

                      – Craig Walker
                      Sep 11 '09 at 1:20






                    • 3





                      @CraigWalker You can also pass it as is, i.e. ssh -o PreferredAuthentications=publickey

                      – Tobias Kienzler
                      Oct 29 '13 at 13:33











                    • @CraigWalker You need quotes if you wish to use spaces to separate the option and the value e.g. ssh "-oPreferredAuthentications publickey"

                      – Timo
                      Mar 14 '18 at 12:02















                    7














                    On the command line (or ~/.ssh/config) you can set PreferredAuthentications.



                    PreferredAuthentications=publickey





                    share|improve this answer

























                    • I think that, on the command line, you need to wrap the option in quotes and then pass it to the -o option.

                      – Craig Walker
                      Sep 11 '09 at 1:20






                    • 3





                      @CraigWalker You can also pass it as is, i.e. ssh -o PreferredAuthentications=publickey

                      – Tobias Kienzler
                      Oct 29 '13 at 13:33











                    • @CraigWalker You need quotes if you wish to use spaces to separate the option and the value e.g. ssh "-oPreferredAuthentications publickey"

                      – Timo
                      Mar 14 '18 at 12:02













                    7












                    7








                    7







                    On the command line (or ~/.ssh/config) you can set PreferredAuthentications.



                    PreferredAuthentications=publickey





                    share|improve this answer















                    On the command line (or ~/.ssh/config) you can set PreferredAuthentications.



                    PreferredAuthentications=publickey






                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Jul 30 '13 at 12:46









                    slm

                    5,136124460




                    5,136124460










                    answered Sep 3 '09 at 11:39









                    RoryRory

                    14.6k54147224




                    14.6k54147224












                    • I think that, on the command line, you need to wrap the option in quotes and then pass it to the -o option.

                      – Craig Walker
                      Sep 11 '09 at 1:20






                    • 3





                      @CraigWalker You can also pass it as is, i.e. ssh -o PreferredAuthentications=publickey

                      – Tobias Kienzler
                      Oct 29 '13 at 13:33











                    • @CraigWalker You need quotes if you wish to use spaces to separate the option and the value e.g. ssh "-oPreferredAuthentications publickey"

                      – Timo
                      Mar 14 '18 at 12:02

















                    • I think that, on the command line, you need to wrap the option in quotes and then pass it to the -o option.

                      – Craig Walker
                      Sep 11 '09 at 1:20






                    • 3





                      @CraigWalker You can also pass it as is, i.e. ssh -o PreferredAuthentications=publickey

                      – Tobias Kienzler
                      Oct 29 '13 at 13:33











                    • @CraigWalker You need quotes if you wish to use spaces to separate the option and the value e.g. ssh "-oPreferredAuthentications publickey"

                      – Timo
                      Mar 14 '18 at 12:02
















                    I think that, on the command line, you need to wrap the option in quotes and then pass it to the -o option.

                    – Craig Walker
                    Sep 11 '09 at 1:20





                    I think that, on the command line, you need to wrap the option in quotes and then pass it to the -o option.

                    – Craig Walker
                    Sep 11 '09 at 1:20




                    3




                    3





                    @CraigWalker You can also pass it as is, i.e. ssh -o PreferredAuthentications=publickey

                    – Tobias Kienzler
                    Oct 29 '13 at 13:33





                    @CraigWalker You can also pass it as is, i.e. ssh -o PreferredAuthentications=publickey

                    – Tobias Kienzler
                    Oct 29 '13 at 13:33













                    @CraigWalker You need quotes if you wish to use spaces to separate the option and the value e.g. ssh "-oPreferredAuthentications publickey"

                    – Timo
                    Mar 14 '18 at 12:02





                    @CraigWalker You need quotes if you wish to use spaces to separate the option and the value e.g. ssh "-oPreferredAuthentications publickey"

                    – Timo
                    Mar 14 '18 at 12:02

















                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Server Fault!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f61915%2fhow-do-i-make-ssh-fail-rather-than-prompt-for-a-password-if-the-public-key-authe%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Wikipedia:Vital articles Мазмуну Biography - Өмүр баян Philosophy and psychology - Философия жана психология Religion - Дин Social sciences - Коомдук илимдер Language and literature - Тил жана адабият Science - Илим Technology - Технология Arts and recreation - Искусство жана эс алуу History and geography - Тарых жана география Навигация менюсу

                    Bruxelas-Capital Índice Historia | Composición | Situación lingüística | Clima | Cidades irmandadas | Notas | Véxase tamén | Menú de navegacióneO uso das linguas en Bruxelas e a situación do neerlandés"Rexión de Bruxelas Capital"o orixinalSitio da rexiónPáxina de Bruselas no sitio da Oficina de Promoción Turística de Valonia e BruxelasMapa Interactivo da Rexión de Bruxelas-CapitaleeWorldCat332144929079854441105155190212ID28008674080552-90000 0001 0666 3698n94104302ID540940339365017018237

                    What should I write in an apology letter, since I have decided not to join a company after accepting an offer letterShould I keep looking after accepting a job offer?What should I do when I've been verbally told I would get an offer letter, but still haven't gotten one after 4 weeks?Do I accept an offer from a company that I am not likely to join?New job hasn't confirmed starting date and I want to give current employer as much notice as possibleHow should I address my manager in my resignation letter?HR delayed background verification, now jobless as resignedNo email communication after accepting a formal written offer. How should I phrase the call?What should I do if after receiving a verbal offer letter I am informed that my written job offer is put on hold due to some internal issues?Should I inform the current employer that I am about to resign within 1-2 weeks since I have signed the offer letter and waiting for visa?What company will do, if I send their offer letter to another company