diff -up openssh-5.9p0/ssh-keygen.0.keygen openssh-5.9p0/ssh-keygen.0 --- openssh-5.9p0/ssh-keygen.0.keygen 2011-08-29 16:30:02.000000000 +0200 +++ openssh-5.9p0/ssh-keygen.0 2011-08-30 13:47:56.208087184 +0200 @@ -4,7 +4,7 @@ NAME ssh-keygen - authentication key generation, management and conversion SYNOPSIS - ssh-keygen [-q] [-b bits] -t type [-N new_passphrase] [-C comment] + ssh-keygen [-q] [-o] [-b bits] -t type [-N new_passphrase] [-C comment] [-f output_keyfile] ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile] ssh-keygen -i [-m key_format] [-f input_keyfile] @@ -181,6 +181,8 @@ DESCRIPTION principals may be specified, separated by commas. Please see the CERTIFICATES section for details. + -o Overwrite the key without prompting user. + -O option Specify a certificate option when signing a key. This option may be specified multiple times. Please see the CERTIFICATES section diff -up openssh-5.9p0/ssh-keygen.1.keygen openssh-5.9p0/ssh-keygen.1 --- openssh-5.9p0/ssh-keygen.1.keygen 2011-08-30 13:32:30.787149917 +0200 +++ openssh-5.9p0/ssh-keygen.1 2011-08-30 13:46:42.638087171 +0200 @@ -45,6 +45,7 @@ .Bk -words .Nm ssh-keygen .Op Fl q +.Op Fl o .Op Fl b Ar bits .Fl t Ar type .Op Fl N Ar new_passphrase @@ -339,6 +340,8 @@ Multiple principals may be specified, se Please see the .Sx CERTIFICATES section for details. +.It Fl o +Overwrite the key without prompting user. .It Fl O Ar option Specify a certificate option when signing a key. This option may be specified multiple times. diff -up openssh-5.9p0/ssh-keygen.c.keygen openssh-5.9p0/ssh-keygen.c --- openssh-5.9p0/ssh-keygen.c.keygen 2011-08-30 13:32:20.268149992 +0200 +++ openssh-5.9p0/ssh-keygen.c 2011-08-30 13:39:34.550214102 +0200 @@ -73,6 +73,7 @@ int change_passphrase = 0; int change_comment = 0; int quiet = 0; +int overwrite = 0; int log_level = SYSLOG_LEVEL_INFO; @@ -1959,7 +1960,7 @@ main(int argc, char **argv) exit(1); } - while ((opt = getopt(argc, argv, "AegiqpclBHLhvxXyF:b:f:t:D:I:P:m:N:n:" + while ((opt = getopt(argc, argv, "AegiqopclBHLhvxXyF:b:f:t:D:I:P:m:N:n:" "O:C:r:g:R:T:G:M:S:s:a:V:W:z:")) != -1) { switch (opt) { case 'A': @@ -2042,6 +2043,9 @@ main(int argc, char **argv) case 'q': quiet = 1; break; + case 'o': + overwrite = 1; + break; case 'e': case 'x': /* export key */ @@ -2278,7 +2282,7 @@ main(int argc, char **argv) } } /* If the file already exists, ask the user to confirm. */ - if (stat(identity_file, &st) >= 0) { + if (!overwrite && stat(identity_file, &st) >= 0) { char yesno[3]; printf("%s already exists.\n", identity_file); printf("Overwrite (y/n)? ");