ssh-keyconvert - convert ssh v1 keys and authorization files


ssh-keyconvert [-k] [-o output_file] identity_file ... ssh-keyconvert [-a] [-o output_file] authorization_file ...


ssh-keyconvert converts RSA public and private keys used for public key based user authentication with protocol version 1 to the format used with protocol version 2.

When using RSA user authentication with SSH protocol version 1, the client uses the private key from

to provide its identity to the server. The server grants or denies access based on whether the public part of this key is listed in

SSH protocol version 2 supports both DSA and RSA keys, but the way RSA keys are stored are differently. On the client, the default file name is

rather than
, and the file’s format is different as well. On the server, the public porting of the key can still be stored in
, but the key notation has changed as well. Therefore, when switching from protocol version 1 to version 2, you either have to create a new identity key using ssh-keygen(1) and add that key to the server’s
file, or you need to convert your keys using ssh-keyconvert.

By default, ssh-keyconvert will try to guess the type of file that is to be converted. If it fails to guess correctly, you can tell if what type of conversion to perform by specifying the -k option to convert the private key, or the -a option to convert an authorisation file.

When converting your private keys stored in

, ssh-keyconvert will read the private key, prompting you for the pass phrase if the key is protected by a pass phrase. If the -o option is given, it will write the private key to the specified file, using version 2 syntax. If the key was protected by a pass phrase, it will use the same pass phrase to protect the new file. It will also write the public portion of the key to a second file, using the specified file name with ".pub" appended. If the -o option was not given, private and public key will be written to
, respectively, relative to the directory of the input key file.

If the destination file already exists, ssh-keyconvert will prompt the user for confirmation before overwriting the file, unless the -f option is given.

When converting your

file, ssh-keyconvert will ignore any keys in SSH version 2 format. Any public keys in version 1 format will be converted and appended to the output file using the new syntax. If the -o option is given, keys are appended to the specified file. If it is not given, ssh-keyconvert will append all keys to the input file.

Note that ssh-keyconvert does not check for duplicate keys, so if you run it on

more several times, the converted keys will show up several times.


-k Convert private key file(s). The default is to guess the type of file that should be converted.
-a Convert
file(s). The default is to guess the type of file that should be converted.
-o outfile
 Specify the name of the output file. When converting an authorization file, all public keys will be appended to this file. For private key conversion, the private and public components of the key will be stored in
, respectively. Note that since every key must be stored in a separate file, you cannot use this option when you specify several input files.
-f When converting a key file, and the output file already exists, ssh-keyconvert will ask the user whether to overwrite the file. Using this option forces overwriting.


OpenSSH is a derivative of the original and free ssh 1.2.12 release by Tatu Ylonen. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt and Dug Song removed many bugs, re-added newer features and created OpenSSH. ssh-keyconvert was contributed by Olaf Kirch.


ssh(1), ssh-add(1), ssh-agent(1), sshd(8)

openSUSE Logo