I've found ssh-keygen ("ssh" package) comand produce another keys that puttygen command ("putty" package). If I create public and private keys with ssh-keygen some ssh-servers can not accept my keys. If I create keys with puttygen one server accept it. Why linux repositories don't propose some common solution (package) for it? I've found another package ssh-220.127.116.11 which produce another keys that must work with putty. But why there is no handy solution in SSH?
OpenSSH is the de facto standard implementation of the SSH protocol. If PuTTY and OpenSSH differ, PuTTY is the one that's incompatible.
If you generate a key with OpenSSH using
PuTTY uses a different key file format. It comes with tools to convert between its own
This ssh-18.104.22.168 you found is a commercial product which has its own different private key format. There's no reason to use it instead of OpenSSH, it can only be less compatible, it requires paying, and there's about zero tutorial on how to use it out there.
Most Linux distros have
NOTE: You can also use
PuTTY's author opted for simplicity so the public and private keys which make up the underlying security used by putty/ssh 2 key authentication are stored in a single proprietary .ppk file. Typically these keys are maintained as a 2 separate files by ssh.
On Linux the key files are typically kept in the directory, .ssh.
There is a good overview of the conversion process here in this Stack Overflow question titled: Convert PEM to PPK file format.
The author of putty also discusses his rationale for using .ppk files in the