Automating “enter” keypresses for bash script generating ssh keys

后端 未结 5 636
说谎
说谎 2020-12-04 08:36

I would like to create script, which simply runs ssh-keygen -t rsa. But how to pass to it 3 times enter?

相关标签:
5条回答
  • 2020-12-04 08:50

    Try:

    ssh-keygen -t rsa -N "" -f my.key
    

    -N "" tells it to use an empty passphrase (the same as two of the enters in an interactive script)

    -f my.key tells it to store the key into my.key (change as you see fit).

    The whole thing runs without you needing to supply any enter keys :)

    To send enters to an interactive script:

    echo -e "\n\n\n" | ssh-keygen -t rsa
    
    0 讨论(0)
  • 2020-12-04 08:52

    a version with passphrase is:

    $ ssh-keygen -t rsa -b 4096 -C "comment" -P "examplePassphrase" -f "desired pathAndName" -q 
    
    • the -q is for silent

    Source is http://linux.die.net/man/1/ssh-keygen

    0 讨论(0)
  • 2020-12-04 08:57
    echo -e "\n"|ssh-keygen -t rsa -N ""
    
    0 讨论(0)
  • 2020-12-04 08:57

    It is recommended to use ed25519 for security and performance.

    yes "y" | ssh-keygen -o -a 100 -t ed25519 -C "Bla Bla" -f /mypath/bla -N ""
    

    here

    -o OpenSSH key format instead of older PEM (needs OpenSSH 6.5+)

    -a Number of primality test while screening DH-GEX candidates

    -t Type of key (ed25519, RSA, DSA etc.)

    -f /mypath/bla The output file path and name

    -N "" Use empty passphase

    and yes "y" for no interaction.

    It will generate two files

    /mypath/bla
    /mypath/bla.pub
    

    where the bla file is private and bla.pub is public.

    0 讨论(0)
  • 2020-12-04 09:05

    Agree with Michel Marro except that it needs some more: If the file already exists, it will still be interactive asking if it has to overwrite it.

    Use the answer of this question.

    yes y | ssh-keygen -q -t rsa -N '' >/dev/null
    

    The redirection to null is necessary to silence the overwrite message.

    0 讨论(0)
提交回复
热议问题