6.5. Authenticating by Public Key (OpenSSH Client, SSH2 Server, OpenSSH Key)
Problem
You want to authenticate between an OpenSSH client and an SSH2 server (i.e., SSH Secure Shell from SSH Communication Security) using an existing OpenSSH-format key.
Solution
Export your OpenSSH key to create an SSH2-format public key. If your OpenSSH private key is ~/.ssh/id_dsa:
$ cd ~/.ssh $ ssh-keygen -e -f id_dsa > mykey-ssh2.pub
Copy the public key to the SSH2 server:
$ scp mykey-ssh2.pub remoteuser@remotehost:
Log into the SSH2 server and install the public key, then log out:
$ ssh -l remoteuser remotehost Password:
********
remotehost$ mkdir -p ~/.ssh2 If it doesn't already exist remotehost$ chmod 700 ~/.ssh2 remotehost$ mv mykey-ssh2.pub ~/.ssh2/ remotehost$ cd ~/.ssh2 remotehost$ echo "Key mykey-ssh2.pub" >> authorization (Appending) remotehost$ chmod 600 mykey-ssh2.pub authorization remotehost$ logoutNow log in via public-key authentication:
$ ssh -l remoteuser remotehost Enter passphrase for key '/home/smith/.ssh/id_dsa':
*******
Discussion
OpenSSH’s ssh-keygen converts OpenSSH-style keys into SSH2-style using the -e (export) option. Recall that SSH2 uses the authorization file, as explained in the sidebar, SSH-2 Key File Formats.
See Also
ssh-keygen(1).
Get Linux Security Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.