I am trying to get my ssh public key from my windows client to ubuntu host, but I have no idea how to. I tried to find the authorized_keys file, but had zero success. ssh-copy-id command did not work from windows. I generated the public/private key pair in PuTTYgen. I am using OpenSSH on the Ubuntu host. Any ideas on what to do?


Any ideas on what to do?

1. EDIT Download cmder or use your favorite console emulator. Move your public key (id_rsa.pub) and your private key (id_rsa) to C:\Users\yourUserName\.ssh\ create the .ssh folder if needed.

2. On your windows host via cmder:

cp C:\Users\yourUserName\.ssh\id_rsa.pub C:\Users\yourUserName\authorized_keys

3. On your ubuntu host:

service ssh status Start sshd if necessary

mkdir ~/.ssh/ (if it doesn't already exist)

4. On your Windows host via cmder:

cd C:\Users\yourUserName\

scp authorized_keys login-id@ubuntu-Host-Ip:~/.ssh

5. On your Ubuntu host:

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

6. On your Windows host via cmder:

Test if you can ssh into your ubuntu host without login/pw auth. If yes:

rm C:\Users\yourUserName\authorized_keys

(you might encounter difficulties running your ssh-agent on windows, write a comment if so)

  • Are you sure that PuTTYgen has generated a C:\Users\yourUserName\.ssh\id_rsa.pub? – Serge Ballesta Aug 22 '17 at 8:17
  • True, gonna edit the answer. – Baptiste Aug 22 '17 at 9:20

Do this on your Windows

  1. Give default values without passphrase, just press enter for all

     ssh-keygen -t rsa
  2. If the authorized_keys file is not there in target Linux machine else just copy the Windows ~/.ssh/id_rsa.pub content to authorized_keys file in target machine

     scp ~/.ssh/id_rsa.pub [linux_user]@[linux_IP/linux_hostname]:~/.ssh/authorized_keys

That's it!!!

  • Works perfectly, but careful since this will overwrite the existing "authorized_key"-file. If you want to use multiple keys you can just create multiple files named "authorized_key2", "authorized_key3" etc. – Lew Pérez Mar 29 '19 at 15:46

Assuming your ssh agent is running, just run this from Ubuntu.

ssh-add -L >> ~/.ssh/authorized_keys

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.