Published on

How to solve Load key invalid format in Windows

Authors
  • avatar
    Name
    Lif
    Twitter

What happened

At this time, I have a ssh key, generated by macos. And I copy the content of my key and paste it on my windows computer.

The key is like

-----BEGIN OPENSSH PRIVATE KEY-----
......
......
-----END OPENSSH PRIVATE KEY-----

I paste it in txt and rename it, then I use command to connect my server:

ssh -i ssh_key [email protected] -p 2222

got

Load key "ssh_key": invalid format

In fact, that doesn't happen on my mac.

Reason

Windows uses two characters the CR LF sequence; Unix only uses LF; and the classic Mac OS used CR.

After pasting, the format of ssh key changed.....

So, there is a simple way to handle this.

Just copy file from mac.

Or I can generate a file use wsl.

wsl
vim ssh_key
# paste content and ensure the content
cp ssh_key /mnt/d
# I dont want to fight with the permission of disk C

Finally, in my windows terminal:

ssh -i ssh_key [email protected] -p 2222

Success!

Other Choice

I can use some software like Termius.

ssh config

It is a lot different to set a config on windows. This works well:

Host starlight
  HostName 1.2.3.4
  IdentityFile C:\Users\lif\.ssh\ssh
  User root
  Port 8888